第十次作业

 1.有5名学生,每名学生有语文、数学和外语3门课的考试成绩。编程统计各学生的总分和平均分以及所有学生各科的平均分。要求成绩在程序中初始化,结果以表格的形式输出。                            

 

#include <stdio.h>
int sum(int score[5][3],double ave[]);
int main()
{
    int score[5][3]={{10,20,30},{10,20,30},{10,20,30},{10,20,30},{10,20,30}};
    int i,j,sum1,sum2,sum[5];
    double ave1[5],ave2[3];
    printf("        语文   数学   英语    总分     平均分\n");
    for(i=0;i<5;i++)
    {
        sum1=0;
        for(j=0;j<3;j++)
        {
           sum1+=score[i][j];
           sum[i]=sum1;
        }
           sum[i]=sum1;
           ave1[i]=(double)sum1/3;
    }
    for(j=0;j<3;j++)
    {
        sum2=0;
        for(i=0;i<5;i++)
        {
            sum2+=score[i][j];
        }
        ave2[j]=(double)sum2/5;
    }
    for(i=0;i<5;i++)
    {
        printf("第%d名同学",i+1);
        for(j=0;j<3;j++)
        {
            printf("%d      ",score[i][j]);
        }
        printf("%d     %.1f\n",sum[i],ave1[i]);
    }
    printf("平均分 ");
    for(i=0;i<5;i++)
    {
        printf("%.1f    ",ave2[i]);
    }
    printf("\n");
    return 0;
}

 2.求任意方阵每行、每列、两对角线上元素之和。

# include <stdio.h>
# define M 50
int main()
{
    int i,j,m,sum1,sum2,sum3,sum4,sum[M][M];
    printf("输入方阵的长度\n");
    scanf("%d",&m);
    for(i=0;i<m;i++)
    {
       printf("请输入第%d行的数字:\n",i+1);
       for(j=0;j<m;j++)
       {
           scanf("%d",&sum[i][j]);
       }
    }
    for(i=0;i<m;i++)
    {
      sum1=0;
      for(j=0;j<m;j++)
      {
        sum1+=sum[i][j]; 
      }
      printf("第%d行的和为:%d\n",i+1,sum1);
    }
    for(j=0;j<m;j++)
    {
      sum2=0;
      for(i=0;i<m;i++)
      {
        sum2+=sum[i][j]; 
      }
      printf("第%d列的和为:%d\n",j+1,sum2);
    }
    sum3=0;
    sum4=0;
    for(i=0;i<m;i++)
    {
       sum3+=sum[i][i];
       sum4+=sum[i][m-1-i];
    }
    printf("对角线之和为%d %d\n",sum3,sum4);
    return 0;
}

实验总结:二维数组的存储是以一维数组的形式进行存储与输出;

              注意赋值;

              下标值应在已定义的数组大小的范围内;

               注意数组不要越界。

posted on 2016-12-11 22:02  张培蕾  阅读(215)  评论(1编辑  收藏  举报

导航