题目:输入n个学生的五门课成绩,输出学生的成绩、成绩总分和各科成绩的平均分
程序代码
#include <iostream>
using namespace std;
int main()
{
const int naxn = 100; //定义变量和数组
const int couresn = 5;
int n;
int score[naxn][couresn+1] = {0};
float aver[couresn+1] = {0};
for(n=0;n<naxn;n++) //输入学生的车成绩
{
for(int j=0;j<couresn;j++)
cin>>score[n][j];
if(score[n][0]<0) break;
}
for(int i=0;i<naxn;i++) //计算每一个学生的总分
{
for(int j=0;j<couresn;j++)
score[i][couresn] = score[i][couresn] + score[i][j];
}
for(int j=0;j<couresn+1;j++) //计算每门课程的平均分
{
for(int i=0;i<n;i++)
aver[j] = aver[j] + score[i][j];
aver[j] = aver[j] / n;
}
for(int i=0;i<n;i++) //输出每个人的成绩和总分
{
for(int j=0;j<couresn+1;j++)
cout<<score[i][j]<<"\t";
cout<<endl;
}
cout<<"-----------------------------------"<<endl;
for(int i=0;i<couresn+1;i++) //输出没门课程的平均分
{
cout<<aver[i]<<"\t";
}
cout<<endl;
return 0;
}
解题思路:
0 | 1 | 2 | 3 | 4 | 5 |
1 | |||||
2 | |||||
3 | |||||
4 | |||||
/ | |||||
程序主要分为五个模块:定义变量、输入学生成绩、计算成绩总分、计算课程平均分和输出总分和平均分。程序的难点在于算法种多次for循环的运用,这也是编写程序最为重要的部分,作为刚入行的编程小白的确是有难度的,但只要在编程的过程种足够的用心,相信还是能够自己学会的。
首先先来说第一部分:我们在这部分定义了一个二维数组,用来存放每一个学生的成绩、计算出来的总分,一维数组用来存放计算出来的课程平均分。定义的n是表示有多少个学生。
第二部分:第一个循环控制列,让后在循环种加入另外一个循环来控制行的输入,当输入的分数的列为负数时推出循环。
第三部分:第一个循环控制列,第二个循环控制行。刚开始的时候score[i][couresn]是为0的由于循环的加入和语句一起实现了将每一个学生的各门课程的成绩集中到这个数组里面。
第四部分:特别主义这里的第一个循环不是控制列,而是控制行,因为只有这样才能将表中的每一列的成绩加在一起,然后第二个循环控制的是列,因为我们要算的并不是只有一个学生的成绩,而是要计算全部学生的成绩,因此这里的循环是做了调整的,之后就是一个一般的语句将学生没门课程的平均成绩算出来。
第四部分:这里的两个循环一起将我们之前输入的学生成绩和计算出来的成绩总分一起输出,这也让我们用户能够一目了然的看清楚成绩的产生。
输出中间的长线是为了让用户能够更加清楚的看清楚成绩的总分和平均分。这并不是程序的必要。
第五部分:用一个简单的for循环将计算出来的每一门课程的平均分输出来。
这样一个相对来说较为复杂的程序就被我们分为了几个简单的小模块,这样能够让我们在写程序的过程中不至于无从下手,但要记住,作为一个程序员,写程序一定要清晰,这样才能够方便我们在以后的维护和让我们的用户能够更加清楚的看清楚我们的程序。