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

    }   

  • 相关阅读:
    ORM(四)应用.脚本管理工具
    一个人不只是在做事,还要多思考.
    报表管理系统。
    放在首页,希望你们帮我来解说一下这个简单的问题,有没有其它的实现方式。
    与数据绑定相关的接口
    在sqlserver视图中慎用table.*的方式。
    最近这段时间的杂想。
    Lily.Core组件介绍,第一讲 实体的生成
    一个简单的Tcp编程练习。
    SQL语句对象化,先看示例代码.
  • 原文地址:https://www.cnblogs.com/mujian/p/4533640.html
Copyright © 2011-2022 走看看