• 数组与二维数组


    数组与函数

    //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]==' ') {

                str[i]='';

                break;

            }

            len++;

        }

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

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

        printf("%d ", 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 ", 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(" ");

    }

    */

    //选择排序

    //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(' ');

    //    

    //    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(' ');

    //    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(' ');

    //    

    //    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()==' ') {

    ////            break;

    ////        }

    //        //方法二

    //        char ch;

    //        if (scanf("%c", &ch), ch==' ') {

    //            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(" ");

    //    }

    //    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(" ");

    //    }

    //    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(" ");

        }

        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(" ");

        }

        return 0;

    }

    让明天,不后悔今天的所作所为
  • 相关阅读:
    潜移默化学会WPF绘图 学习(一)
    MovablePlane issue
    ogre Fix bug in HLSL with 3×4 matrix arrays
    如何加强角色渲染的真实感(self shadow + subsurface scattering + rim lighting)
    The DirectX SDK (February 2010) release is now live on Microsoft downloads.
    Color Spaces
    游戏主循环
    实时动态云 perlin noise + 光照 + 太阳光遮挡
    这几个礼拜做的事情
    ogre无法读取中文路径的解决办法
  • 原文地址:https://www.cnblogs.com/-yun/p/4256782.html
Copyright © 2020-2023  润新知