首页 > 代码库 > iOS-C_Day7___数组与二维数组

iOS-C_Day7___数组与二维数组

数组与函数

//1.给定某个字符数组,统计数组中所有英文字符的个数,比如“123fdd”中有 3 个。

//数组作为函数的接口参数, 数组的长度丢失

#include <string.h>

int numberOfCharacter(char src[], int len)

{

    int cnt=0;

    for (int i=0; i<len; i++) {

        if ((src[i]>=‘A‘ && src[i]<=‘Z‘) || (src[i]>=‘a‘ && src[i]<=‘z‘)) {

            cnt++;

        }

    }

    return cnt;

}

 

/*int main(int argc, const char * argv[]) {

    char str[200];

    int len=0;

    for (int i=0; i<200; i++) {

        scanf("%c", &str[i]);

        if (str[i]==‘\n‘) {

            str[i]=‘\0‘;

            break;

        }

        len++;

    }

//    scanf("%s", str);

//    int len = (int)strlen(str);//求字符串中有效字符个数

    printf("%d\n", numberOfCharacter(str,len));

    

    return 0;

}*/

 

 

//判断一个整型数组是否是对称数组,例如{1,2,3,3,2,1}和{1,6,8,1,8,6,1}都是对称数组。

#include <stdbool.h>

 

//bool isSymmetricArray(int src[], int len)

//{

//    int i=0;

//    for (i=0; i<len/2; i++) {

//        if (src[i]!=src[len-i-1]) {

//            break;

//        }

//    }

//    if (i==len/2) {

//        return true;

//    }

//    return false;

//}

//int main(int argc,const char *argv[])

//{

//    int a[]={1,6,8,1,8,6,1};

//    printf("%d\n", isSymmetricArray(a,7));

//

//    return 0;

//}

 

 

//数组排序

//冒泡排序  从小到大

//9 7 8 5 6   --> 5 6 7 8 9

//第一次排序

//7 9 8 5 6

//7 8 9 5 6

//7 8 5 9 6

//7 8 5 6 9

 

//第二次排序

//7 8 5 6 9

//7 5 8 6 9

//7 5 6 8 9

 

//第三次排序

//5 7 6 8 9

//5 6 7 8 9

 

//第四次排序

//5 6 7 8 9

 

/*int main(int argc,const char *argv[])

{

    int a[5]={9,7,8,5,6};

    for (int i=0; i<5-1; i++) {//控制排序的次数

//        for (int j=0; j<5-1-i; j++) {//控制交换的次数

//            if (a[j]>a[j+1]) {

//                int temp = a[j];

//                a[j]=a[j+1];

//                a[j+1]=temp;

//            }

//        }

        for (int j=1; j<5-i; j++)

        {

            if (a[j-1]>a[j]) {

                int temp = a[j-1];

                a[j-1]=a[j];

                a[j]=temp;

            }

        }

    }

    for (int i=0; i<5; i++) {

        printf("%d ", a[i]);

    }

    printf("\n");

}

*/

 

//选择排序

//9 7 8 5 6

//找最大值

//第一次排序

//6 7 8 5 9

//第二次排序

//6 7 5 8 9

//第三次排序

//6 5 7 8 9

//第四次排序

//5 6 7 8 9

//int main(int argc,const char *argv[])

//{

//    int a[5]={9,7,8,5,6};

//    

//    for (int i=5-1; i>0; i--) {

//        int k = i;

//        for (int j=i-1; j>=0; j--) {

//            if (a[k]<a[j]) {

//                k=j;

//            }

//        }

//        if (k!=i) {

//            int temp = a[k];

//            a[k]=a[i];

//            a[i]=temp;

//        }

//    }

//    for (int i=0; i<5; i++) {

//        printf("%d ", a[i]);

//    }

//    putchar(‘\n‘);

//    

//    return 0;

//}

 

//

//9 7 8 5 6

//找最小值

//k = i;

//第一次排序

//5 7 8 9 6

//第二次排序

//5 6 8 9 7

//第三次排序

//5 6 7 9 8

//第四次排序

//5 6 7 8 9

 

//int main(int argc,const char *argv[])

//{

//    int a[5]={9,7,8,5,6};

//    

//    for (int i=0; i<5-1; i++) {

//        int k=i;

//        for (int j=i+1; j<5; j++) {

//            if (a[k]>a[j]) {

//                k=j;

//            }

//        }

//        if (k!=i) {

//            int temp = a[k];

//            a[k]=a[i];

//            a[i]=temp;

//        }

//    }

//

//    for (int i=0; i<5; i++) {

//        printf("%d ", a[i]);

//    }

//    putchar(‘\n‘);

//    return 0;

//}

 

//插入排序

//9 7 8 5 6

//第一次排序

//9 9 8 5 6

//7 9 8 5 6

//第二次排序

//7 9 9 5 6

//7 8 9 5 6

//第三次排序

//7 8 9 9 6

//7 8 8 9 6

//7 7 8 9 6

//5 7 8 9 6

//第四次排序

//5 7 8 9 9

//5 7 8 8 9

//5 7 7 8 9

//5 6 7 8 9

//

//int main(int argc,const char *argv[])

//{

//    int a[5]={9,7,8,5,6};

//    for (int i=1; i<5; i++) {

//        int temp = a[i];

//        int j=i-1;

//        while (j>=0 && a[j]>temp) {

//            a[j+1]=a[j];

//            j--;

//        }

//        a[j+1]=temp;

//    }

//    for (int i=0; i<5; i++) {

//        printf("%d ", a[i]);

//    }

//    putchar(‘\n‘);

//    

//    return 0;

//}

 

//如何输入不定个数的数组元素

//int main(int argc,const char *argv[])

//{

//    int a[100];

//    int cnt=0;

//    for (int i=0; i<100; i++) {

//        scanf("%d", &a[i]);

//        cnt++;

//        //方法一

////        if (getchar()==‘\n‘) {

////            break;

////        }

//        //方法二

//        char ch;

//        if (scanf("%c", &ch), ch==‘\n‘) {

//            break;

//        }

//    }

//    for (int i=0; i<cnt; i++) {

//        printf("%d ", a[i]);

//    }

//

//    return 0;

//}

 

//二维数组可以看成由一维数组元素组成的数组

//int a[3][2];

//

 

//二维数组的初始化

//方法一

//int main(int argc,const char *argv[])

//{

//    int a[3][2]={1,2,3,4,5,6};

//    

//    for (int i=0; i<3; i++) {

//        for (int j=0; j<2; j++) {

//            printf("%d ", a[i][j]);

//        }

//        printf("\n");

//    }

//    return 0;

//}

 

//方法二

 

//int main(int argc,const char *argv[])

//{

//    int a[3][2]={{1,2},

//                 {3,4},

//                 {5,6}};

//

//    for (int i=0; i<3; i++) {

//        for (int j=0; j<2; j++) {

//            printf("%d ", a[i][j]);

//        }

//        printf("\n");

//    }

//    return 0;

//}

 

//打印杨辉三角

//1

//1 1

//1 2 1

//1 3 3 1

//1 4 6 4 1

//1 5 10 10 5 1

 

/*int main(int argc,const char *argv[])

{

    int a[10][10]={};

    for (int i=0; i<10; i++) {

        

        for (int j=0; j<i; j++) {

            if (j==0 || j==i) {

                a[i][j]=1;

            }

            else

            {

                a[i][j]=a[i-1][j]+a[i-1][j-1];

            }

        }

    }

    for (int i=0; i<10; i++) {

        for (int j=0; j<i; j++) {

            printf("%4d", a[i][j]);

        }

        printf("\n");

    }

    return 0;

}*/

int main(int argc,const char *argv[])

{

    int a[10][10]={};

    for (int i=0; i<10; i++) {

        

        for (int j=0; j<=i; j++) {

            if (j==0 || j==i) {

                a[i][j]=1;

            }

            else

            {

                a[i][j]=a[i-1][j]+a[i-1][j-1];

            }

        }

    }

    for (int i=0; i<10; i++) {

        printf("%*d", 26-2*i,a[i][0]);

        for (int j=1; j<=i; j++) {

            printf("%4d", a[i][j]);

        }

        printf("\n");

    }

    return 0;

}

 

iOS-C_Day7___数组与二维数组