输入10个学生5门课程成绩,分别用函数求
【问题描述】输入10个学生5门课程成绩,分别用函数求:
(1)每个学生的平均分;(2) 每门课平均分;
(3) 每门课不及格人数。
将10个学生的全部成绩及求出的结果在屏幕上显示。
#include <iostream>
using namespace std;
int main()
{
float s[10][5];
int i,j;
float sum=0;
for(i=0;i<10;i++)
for(j=0;j<5;j++)
cin>>s[i][j];
for(i=0;i<10;i++)
{
sum = 0;
for(j=0;j<5;j++)
sum += s[i][j];
cout<<"第"<<i+1<<"个学生平均分为:"<<setprecision(2)<<sum/5<<endl;
}
for(i=0;i<5;i++)
{
sum = 0;
for(j=0;j<10;j++)
sum += s[j][i];
cout<<"第"<<i+1<<"门课平均分为:"<<setprecision(2)<<sum/10<<endl;
}
return 0;
}
代码如下:
#include <iostream>
using namespace std;
#define NR 10 //人数
#define KCN 5 //课程数
//(1)
void StuAvg(float a[][KCN],float avg[])
{
int i,j;
//计算学生的平均成绩
for(i=0;i<NR;i++)
{
avg[i] = 0;
for(j=0;j<KCN;j++)
avg[i] += a[i][j];
avg[i]/= KCN;
//printf("学生%d的平均成绩为:%.2f\n",i+1,avg[i]);
}
}
//(2)
void KcAvg(float a[][KCN],float avgkc[])
{
int i,j;
for(i=0;i<KCN;i++)
{
avgkc[i] = 0;
for(j=0;j<NR;j++)
avgkc[i] += a[j][i];
avgkc[i]/=NR;
//printf("课程%d的平均成绩为:%.2f\n",i+1,avgkc[i]);
}
}
//(3)显示
void show(float a[][KCN],float avg[],float avgkc[])
{
int i,j;
for (i=0;i<NR;i++)
{
printf("学生%d的成绩为:");
for (j=0;j<KCN;j++)
{
printf("%.2f ",a[i][j]);
}
printf("平均成绩为:%.2f\n",avg[i]);
}
for (i=0;i<KCN;i++)
{
printf("课程%d的平均成绩为:%.2f\n",i+1,avgkc[i]);
}
}
int main()
{
float a[NR][KCN];
int i,j;
float avg[NR],avgkc[KCN];
for(i=0;i<NR;i++)
{
for(j=0;j<KCN;j++)
cin >> a[i][j];
}
//计算学生的平均成绩
StuAvg(a,avg);
//计算课程的平均成绩
KcAvg(a,avgkc);
//显示
show(a,avg,avgkc);
return 0;
}
#include <stdio.h>
int main()
{
float s[10][5];
int i,j,count=0;
float sum=0;
for(i=0;i<10;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
for(i=0;i<10;i++)
{
sum = 0;
for(j=0;j<5;j++)
sum += s[i][j];
printf("第%d个学生平均分为:%.2f\n",i+1,sum/5);
}
for(i=0;i<5;i++)
{
sum = 0;
count = 0;
for(j=0;j<10;j++)
{
sum += s[j][i];
if(s[j][i]<60)
count++;
printf("第%d门课平局分为:%.2f\n",i+1,sum/10);
printf("第%d门课不及格人数:%d\n",i+1,count);
}
}
return 0;
}