输入5个学生四门功课的成绩,然后求出:1.每个学生的总分;2.每门课程的平均分;3.输出总分最高的学生的姓名和总分数。

//输入五名同学 四门课程成绩 计算出每个人的总分数 课程的平均成绩 和 输出总分最高的同学 
#include<iostream>
#include <iomanip>

using namespace std;

int main()
{
	int M = 5,N = 4,k;
	char name[M][20] = {"\0"};
	double total,averge,max = 0;
	double Course_grade[M][N] = {0};
	
	for(int i = 0;i < M;i++)
	{
		cout<<"Please input name:";
		cin.getline(name[i],20);
	}
	for(int i = 0;i < M;i++)
	{
		cout<<"Please input grade:";
		for(int j = 0;j < N;j++)
		{
			cin>>Course_grade[i][j];
		}
	}
	
	cout<<setw(10)<<"Name"<<setw(10)<<"Course_1"<<setw(10)<<"Course_2"<<setw(10)<<"Course_3"<<setw(10)<<"Course_4"<<setw(10)<<"Total"<<endl;
	for(int i = 0;i < M;i++)
	{
		total = 0;
		cout<<setw(10)<<name[i];
		for(int j = 0;j < N;j++)
		{
			cout<<setw(10)<<Course_grade[i][j];
			total += Course_grade[i][j];
		}
		if(total > max)
		{
		max = total;
		k = i;
		}
		cout<<setw(10)<<total;
		cout<<""<<endl;
	}
	cout<<setw(10)<<"Averge";
	for(int i = 0;i < N;i++)
	{
		averge = 0;
		for(int j = 0;j < M;j++)
		{
			averge += Course_grade[j][i];
		}
		averge = averge / 5;
		cout<<setw(10)<<averge;
	}
	cout<<""<<endl;
	cout<<"总成绩最高的学生为:"<<name[k]<<"  ";
		for(int i = 0;i < M;i++)
	{
		total = 0;
		for(int j = 0;j < N;j++)
		{
			total += Course_grade[i][j];
		}
		if(total == max && i != k)
		cout<<name[i]<<"  ";
	}
	cout<<"总成绩为:"<<max;
	
	return 0;
}
  • 9
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是实现以上功能的C语言代码: ```c #include <stdio.h> #include <string.h> #define STUDENT_NUM 5 #define COURSE_NUM 4 int main() { char name[STUDENT_NUM][20]; int score[STUDENT_NUM][COURSE_NUM]; int total_score[STUDENT_NUM]; float course_avg[COURSE_NUM]; // 输入学生姓名成绩 for (int i = 0; i < STUDENT_NUM; i++) { printf("请输入第%d个学生姓名:", i + 1); scanf("%s", name[i]); for (int j = 0; j < COURSE_NUM; j++) { printf("请输入%s的第%d门成绩:", name[i], j + 1); scanf("%d", &score[i][j]); } } // 计算每个学生总分每门课程平均分 memset(total_score, 0, sizeof(total_score)); memset(course_avg, 0, sizeof(course_avg)); for (int i = 0; i < STUDENT_NUM; i++) { for (int j = 0; j < COURSE_NUM; j++) { total_score[i] += score[i][j]; course_avg[j] += (float)score[i][j] / STUDENT_NUM; } } // 输出每个学生总分每门课程平均分 printf("每个学生总分如下:\n"); for (int i = 0; i < STUDENT_NUM; i++) { printf("%s的总分是%d\n", name[i], total_score[i]); } printf("每门课程平均分如下:\n"); for (int i = 0; i < COURSE_NUM; i++) { printf("第%d门平均分是%.2f\n", i + 1, course_avg[i]); } // 找出总分最高学生 int max_score = -1; int max_index = -1; for (int i = 0; i < STUDENT_NUM; i++) { if (total_score[i] > max_score) { max_score = total_score[i]; max_index = i; } } printf("总分最高学生是%s,总分是%d\n", name[max_index], max_score); return 0; } ``` 这个代码使用了二维数组来存储学生成绩,一维数组来存储学生姓名总分,以及一维数组来存储每门课程平均分。在输入学生成绩后,使用嵌套的for循环计算每个学生总分每门课程平均分。最后,使用一个for循环找出总分最高学生

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值