第十次作业

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

#include<stdio.h>
#define M 5
#define N 5
int main()
{
    int a,b;
    double sum;
    double he[5]={0},shu[M][N]={{55,49,46},{58,84,76},{94,56,86},{49,78,56},{49,85,75}};
    printf("	语文	数学	英语	总和	平均
");
     for(a=0;a<M;a++)
     {
         sum=0;
         for(b=0;b<N-2;b++)
         {
             sum=sum+shu[a][b];
        }
        shu[a][3]=sum;
        shu[a][4]=shu[a][3]/(N-2);
    }
    for(a=0;a<M;a++)
     {
        printf("	");
         for(b=0;b<N;b++)
         {
             printf("%.2f	",shu[a][b]);
        }
        printf("
");
    }
    for(a=0;a<M;a++)
     {
         sum=0;
         for(b=0;b<N;b++) 
         {
             sum=sum+shu[b][a];
        }
        he[a]=sum/N;
    }
    printf("平均	");
    for(a=0;a<N;a++)
    {
        printf("%.2f	",he[a]);
    }
    return 0;
}

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

#include<stdio.h>
#define M 3
#define N 3
int main()
{
    int a[M][N]={{1,2,3},{1,2,3},{1,2,3}};
    int i,j,hang1=0,hang2=0,hang3=0,lie1=0,lie2=0,lie3=0,zuoxie=0,youxie=0;
    for(i=0;i<N;i++)
    {
        for(j=0;j<M;j++)
        {
            printf("%d ",a[i][j]);
        }
        printf("
");
    }
    for(i=0;i<N;i++)
    {
        hang1=hang1+a[0][i];
        hang2=hang2+a[1][i];
        hang3=hang3+a[2][i];
        lie1=lie1+a[i][0];
        lie2=lie2+a[i][1];
        lie3=lie3+a[i][2];
        zuoxie=zuoxie+a[i][i];
        youxie=youxie+a[i][N-1-i];
    }
    printf("第一行是%d
第二行是%d
第三行是%d
第一列是%d
第二列是%d
第三列是%d
左斜对角线是%d
右斜对角线是%d
",hang1,hang2,hang3,lie1,lie2,lie3,zuoxie,youxie);
    return 0;
}

二、实验总结;

1.在一维数组的输入与输出时,用一层循环来实现,在二维数组的输入与输出时,用两层循环来实现,用外层循环来控制行数,用内层循环来控制列数。
2.制作表格用 ,一个 表示4个字符。
3.在循环中要注意先循环行还是先循环列。
4.二维数组中可以省略行的数组长度,但是不能省略列的数组长度。

原文地址:https://www.cnblogs.com/buyuhang/p/6160004.html