zoukankan      html  css  js  c++  java
  • 数组典型题目

    3、从键盘输入11个数存入一维数组中,将左半部分的元素值取倒数后重新存入该数组中,并输出所有元素。

    解法1:

    main()

    {float a[11];

    int i;

    for(i=0;i<11;i++)

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

    for(i=0;i<5;i++)    /*左半部分下标为0到4*/

    a[i]=1/a[i]; 

    for(i=0;i<11;i++)

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

    printf(" ");

    }

    解法2:

    #define N 11

    main()

    {float a[N];

    int i;

    for(i=0;i<N;i++)

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

    for(i=0;i<N/2;i++)    /*左半部分下标为0到N/2-1*/

    a[i]=1/a[i]; 

    for(i=0;i<N;i++)

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

    printf(" ");

    }

    4、从键盘输入11个数存入一维数组中,将右半部分的元素值取相反数后重新存入该数组中,并输出所有元素。

    解法1:

    main()

    {float a[11];

    int i;

    for(i=0;i<11;i++)

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

    for(i=6;i<11;i++)    /*右半部分下标为6到10*/

    a[i]=-a[i]; 

    for(i=0;i<11;i++)

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

    printf(" ");

    }

    解法2:#define N 11

    main()

    {float a[N];

    int i;

    for(i=0;i<N;i++)

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

    for(i=(N+1)/2;i<=N-1;i++)    /*右半部分下标为(N+1)/2到N-1*/

    a[i]=-a[i]; 

    for(i=0;i<N;i++)

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

    printf(" ");

    }

    5、求出斐波那契数列的前20项并输出。

    main()

    {long f[20]={1,1};

    int i;

    for(i=2;i<=19;i++)

        f[i]=f[i-2]+f[i-1];

    for(i=0;i<=19;i++)

        printf("%12ld",f[i]);

    }

    6、从键盘输入10个数,求出其中的最大数并输出。

    main()

    {int a[10],max,i;

       for(i=0;i<=9;i++)

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

       max=a[0];

       for(i=1;i<=9;i++)

     {if(a[i]>max)

              max=a[i];

        }

       printf("max=%d ",max);

    }

    main()

    {int a[10],max,min,i;

        for(i=0;i<=9;i++)

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

        max=a[0];

        for(i=1;i<=9;i++)

     {if(a[i]>max)

            max=a[i];

          }

        min=a[0];

        for(i=1;i<=9;i++)

     {if(a[i]<min)

            min=a[i];

          }

    printf("max=%d ",max);

    printf("min=%d ",min);

    }

    8、从键盘输入11个数存入一维数组a中,再将其中的值按相反的顺序存入数组b中并输出。

    解法1:

    main()

    {int a[11],b[11],i;

    for(i=0;i<11;i++)

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

    for(i=0;i<11; i++)   

    {b[i]=a[10-i];

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

    }

    printf(" ");

    }

    8A、从键盘输入11个数存入一维数组中,将其中的值前后倒置后重新存入该数组中并输出。

    解法1:

    main()

    {int a[11],i,j,t;

    for(i=0;i<=10;i++) /*用循环输入11个元素*/

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

    i=0;j=10;

    while(i<j)

    {t=a[i];a[i]=a[j];a[j]=t; /*交换对应元素的值*/

    i++;j--;

    }

    for(i=0;i<=10;i++) /*用循环输出11个元素*/

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

    printf(" ");

    }

    9、从键盘输入11个数存入一维数组中,将该数组中左半部分与右半部分的值平移交换后重新存入该数组中并输出。

    解法1:

    main()

    {int a[11],i,t;

    for(i=0;i<11;i++) /*用循环输入11个元素*/

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

    for(i=0;i<=4; i++)  

    {t=a[i];

    a[i]=a[i+6];

    a[i+6]=t; /*交换对应元素的值*/

    }

    for(i=0;i<11;i++) /*用循环输出11个元素*/

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

    printf(" ");

    }

    12A、从键盘输入10个学生的姓名和成绩,用选择法按成绩降序排序并输出(要求姓名和成绩对应关系保持不变)。

    main()

    {int p[10],i,j,t;

    char a[10][30],m[30];

    for(i=0;i<=9;i++)

       gets(a[i]); /*输入姓名存入数组a的第i行*/

    for(i=0;i<=9;i++)

    scanf("%d",&p[i]); /*输入成绩*/

    }  

    for(i=0;i<=8;i++)

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

          {if(p[i]<p[j])

              {t=p[i];p[i]=p[j];p[j]=t; /*交换成绩*/

          strcpy(m,a[i]);strcpy(a[i],a[j]);strcpy(a[j],m); /*交换姓名*/

         }

           }

       }

    for(i=0;i<=9;i++)

       {printf("%s,",a[i]);   /*输出姓名*/

       printf("%d ",p[i]); /*输出成绩*/

    }

    }

    13、从键盘输入一组数据按行优先次序存入数组a[3][4]中,再按列优先次序输出。

    main()

    {int a[3][4],i,j;

    for(i=0;i<=2;i++) /*行优先次序,外循环控制行号*/

        for(j=0;j<=3;j++) /*内循环控制列号*/

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

    for(j=0;j<=3;j++) /*列优先次序,外循环控制列号*/

       {for(i=0;i<=2;i++) /*内循环控制行号*/

          {printf("%6d",a[i][j]);}

        printf(" ");

       }

    }

    15A、已知一个二维数组a[2][3]={{1,2,3},{4,5,6}},将其转置后存入另一个二维数组b[3][2]中。

    main()

    {int a[2][3]={{1,2,3},{4,5,6}},b[3][2],i,j;

    for(i=0;i<3;i++) /*按行给数组b的元素赋值*/

    {for(j=0;j<2;j++) /*并分行显示数组b内容*/

       {b[i][j]=a[j][i];

        printf("%6d",b[i][j]);

       }

       printf(" "); /*注意该语句的位置*/

    }

    }

    16、从键盘输入一组数据存入数组a[3][3]中,求其主对角线元素之和。

    main()

    {float a[3][3],s=0;

    int i,j;

       for(i=0;i<=2;i++) /*外循环控制行号*/

        for(j=0;j<=2;j++) /*内循环控制列号*/

          scanf("%f",&a[i][j]);

       for(i=0;i<=2;i++)

         s=s+a[i][i]; /*主对角线元素行列号相同*/

    printf("s=%f ",s);

    17、从键盘输入一组数据存入数组a[3][3]中,求其主对角线下方元素之和。

    main()

    {float a[3][3],s=0;

    int i,j;

       for(i=0;i<=2;i++) /*外循环控制行号*/

        for(j=0;j<=2;j++) /*内循环控制列号*/

           scanf("%f",&a[i][j]);

    for(i=0;i<=2;i++)

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

            s=s+a[i][j];

    }

    printf("s=%f ",s);

    18、从键盘输入一组数据存入数组a[4][4]中,求其四周元素之和。

    main()

    {float a[4][4],s=0;

    int i,j;

       for(i=0;i<=3;i++) /*外循环控制行号*/

        for(j=0;j<=3;j++) /*内循环控制列号*/

           scanf("%f",&a[i][j]);

       for(i=0;i<=3;i++)

    {for(j=0;j<=3;j++)

    {if(i==0||i==3||j==0||j==3)   /*行列号等于0或者等于3*/    

           s=s+a[i][j];

         }

    }

    printf("s=%f ",s);

    }   

  • 相关阅读:
    嵌入式开发之web服务器---boa移植
    图像处理之基础---去污算法
    图像处理之基础---傅里叶
    图像处理之基础---卷积
    图像处理之基础---各种滤波
    二维矩阵卷积运算实现
    图像处理之基础---卷积傅立叶变换中的复数
    图像处理-线性滤波-2 图像微分(1、2阶导数和拉普拉斯算子)
    Live555 中的客户端动态库.so的调用方式之一 程序中调用
    20个Flutter实例视频教程-01节底部导航栏和切换效果的制作-1
  • 原文地址:https://www.cnblogs.com/mujian/p/4533640.html
Copyright © 2011-2022 走看看