输入N个学生5门课的成绩,求每个学生的平均成绩及每一门课的平均成绩;

欢迎加qq群:453398542 学习讨论,会定期分享资料课程,解答问题。

1、         输入N个学生5门课的成绩,求每个学生的平均成绩及每一门课的平均成绩;

#include<stdio.h>
#define M  20
#define N  10
int main()
{
float a[M][N],av[M],sav[N];
int n,i,j;
printf("输入学生个数:");
scanf("%d",&n);
printf("输入成绩:\n");
for (i=0;i<n;i++){
for (j=0;j<5;j++){
scanf("%f",&a[i][j]);
}  

//计算每个同学的平均分 
for (i=0;i<n;i++){
   av[i]=0;
   for (j=0;j<5;j++){
    av[i]=av[i]+a[i][j];

   av[i]=av[i]/5;
printf("第%d个同学的平均分是:%.2f\n",i+1,av[i]);
}
//计算每门课的平均分 
for (j=0;j<5;j++){
   sav[j]=0;
   for (i=0;i<n;i++){
    sav[j]=sav[j]+a[i][j];
}
   sav[j]=sav[j]/n;
printf("第%d门课的平均成绩是:%.2f\n",j+1,sav[j]);
}
return 0;
}

  • 8
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
题目描述:某班级10个学生,进行数学、语文、英语以及C++科目的考试,编写程序:1)讲考试成绩输入一个二维数组;2)一门平均成绩、及格人数以及每门的最高分和最低分;3)每个学生平均成绩、总分不及格次数以及每个门课的最高分和最低分。 这是一道程序设计题目,需要编写程序进行解。第一部分需要将考试成绩输入到一个二维数组中,然后遍历二维数组,求出一门平均成绩、及格人数以及每门的最高分和最低分。第二部分需要在遍历二维数组的时候,同时求出每个学生平均成绩、总分不及格次数以及每个门课的最高分和最低分。在程序的实现过程中,需要使用循环、条件语句、数组等基本语法。 具体实现方式可以参考如下代码: ``` #include <iostream> using namespace std; const int N = 10, M = 4; // 学生人数和科目数 int main() { int score[N][M]; // 存放考试成绩 int pass[N][M] = {0}; // 存放及格情况,0表示不及格,1表示及格 // 输入成绩 for (int i = 0; i < N; i++) { cout << "请输入第" << i + 1 << "个学生成绩:"; for (int j = 0; j < M; j++) { cin >> score[i][j]; if (score[i][j] >= 60) pass[i][j] = 1; } } // 每门平均成绩、及格人数、最高分和最低分 int avg[M], cnt[M], maxScore[M], minScore[M]; for (int j = 0; j < M; j++) { avg[j] = cnt[j] = maxScore[j] = minScore[j] = 0; for (int i = 0; i < N; i++) { avg[j] += score[i][j]; cnt[j] += pass[i][j]; maxScore[j] = max(maxScore[j], score[i][j]); minScore[j] = (i == 0) ? score[i][j] : min(minScore[j], score[i][j]); } avg[j] /= N; cout << "第" << j + 1 << "门课平均成绩为:" << avg[j] << endl; cout << "及格人数为:" << cnt[j] << endl; cout << "最高分为:" << maxScore[j] << endl; cout << "最低分为:" << minScore[j] << endl; } // 每个学生平均成绩、总分不及格次数、每个门课的最高分和最低分 int stuAvg[N], failCnt[N], stuMaxScore[N], stuMinScore[N]; for (int i = 0; i < N; i++) { stuAvg[i] = failCnt[i] = stuMaxScore[i] = stuMinScore[i] = 0; for (int j = 0; j < M; j++) { stuAvg[i] += score[i][j]; failCnt[i] += (pass[i][j] == 0); stuMaxScore[i] = max(stuMaxScore[i], score[i][j]); stuMinScore[i] = (j == 0) ? score[i][j] : min(stuMinScore[i], score[i][j]); } stuAvg[i] /= M; cout << "第" << i + 1 << "个学生平均成绩为:" << stuAvg[i] << endl; cout << "总分不及格次数为:" << failCnt[i] << endl; cout << "每门的最高分为:" << stuMaxScore[i] << endl; cout << "每门的最低分为:" << stuMinScore[i] << endl; } return 0; } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值