C语言每日一练之二维数组

1.二维数组

        如果你对C语言的一维数组已经有了一定的了解,那么你将很容易接受二维数组的设定,毕竟实际情况中多维数组的问题更常见,首先介绍下二维数组的定义:

类型说明符 数组名[常量表达式1][常量表达式2],例如int a[3][4]。

        与一维数组相比,二维数组只是多了一个下标变量用以标注数组元素在数组中的位置,也就是由线到面的变化。

2.例题

        一个小组里面有5个学生,每个学生有3门科目的考试成绩,设计程序求取每个学生的总成绩,每科的平均成绩以及该小组总分的平均成绩。

        这里由于涉及到学生及成绩两个变量,所以要声明二维数组,至于每科的均分及总均分在我们得到每个学生每个科目的分数之后,完全可以多设置几个变量再一一求解即可,不过这里我们还是声明两个一维数组简化下代码。

3.代码详解

#include
int main()
{
    float score[5][3],total[5],average[3],averagetotal=0;/*二维数组score[5][3]用于表示5个学生,3门科目,后面3个变量依次用来求取每个学生总分,每科平均分,总分平均分*/
    int i,j;/*作为循环变量*/
    for(i=0;i<5;i++)
    {
        total[i]=0;/*没输入学生分数之前其总分为0*/
        printf("please input the score of student %d:\n",i+1);/*屏幕显示‘请输入学生i的成绩’*/
        for(j=0;j<3;j++)
        {
            printf("subject %d=",j+1);
            scanf("%f",&score[i][j]);
            total[i]=total[i]+score[i][j];
        }/*在该循环中,因为i的值已经确定(0或1或2)所以其作用是告诉操作者输入学生i的各科成绩,并计算其总分*/
        printf("total score=%.2f\n",total[i]);/*打印该学生的总分*/
        printf("%c",'\n');
    }/*外部的大循环用于切换学生*/
    for(i=0;i<3;i++)
    {
        average[i]=0;
        for(j=0;j<5;j++)
        {
            average[i]=average[i]+score[j][i];
        }
        printf("the average score of subject %d is %.2f\n",i+1,average[i]/5);/*该循环实现将同个科目的5个学生该科成绩相加求取平均数*/
    }
    for(i=0;i<5;i++)
    {
        averagetotal=averagetotal+total[i];
    }
    printf("the average score of the five student's total score is %.2f",averagetotal/5);
}/*本循环将每个学生总分相加并求取总的平均分*/

让我们来看看运行结果:

please input the score of student 1:
subject 1=80
subject 2=87
subject 3=95
total score=262.00

please input the score of student 2:
subject 1=56
subject 2=98
subject 3=45
total score=199.00

please input the score of student 3:
subject 1=88
subject 2=89
subject 3=78
total score=255.00

please input the score of student 4:
subject 1=99
subject 2=91
subject 3=96
total score=286.00

please input the score of student 5:
subject 1=43
subject 2=76
subject 3=96
total score=215.00

the average score of subject 1 is 73.20
the average score of subject 2 is 88.20
the average score of subject 3 is 82.00
the average score of the five student's total score is 243.40
Process returned 0 (0x0)   execution time : 47.284 s
Press any key to continue.

怎么样,是不是很简单呢? 

 

你可能感兴趣的:(c语言,开发语言,后端)