c语言用for语句编写学生五门课成绩和该学生五门课平均成绩
时间: 2024-05-27 16:14:44 浏览: 87
#include <stdio.h>
int main() {
int scores[5]; // 存储五门课成绩
int i, sum = 0;
float average;
// 输入五门课成绩
for (i = 0; i < 5; i++) {
printf("请输入第%d门课成绩:", i + 1);
scanf("%d", &scores[i]);
sum += scores[i]; // 计算总分
}
average = sum / 5.0; // 计算平均分
// 输出五门课成绩和平均分
printf("五门课成绩为:");
for (i = 0; i < 5; i++) {
printf("%d ", scores[i]);
}
printf("\n平均分为:%.2f\n", average);
return 0;
}
相关问题
C语言用for语句编写该学生五门课成绩和该学生五门课的平均成绩
假设该学生的五门课成绩分别存储在数组score中,可以使用for循环语句计算该学生的五门课的平均成绩,代码如下:
```c
#include <stdio.h>
int main() {
int score[5] = {75, 82, 68, 90, 87}; // 假设五门课的成绩为75、82、68、90、87
int sum = 0;
float avg;
for (int i = 0; i < 5; i++) {
sum += score[i]; // 累加每门课的成绩
}
avg = (float)sum / 5; // 计算平均成绩
printf("该学生的五门课成绩为:");
for (int i = 0; i < 5; i++) {
printf("%d ", score[i]); // 输出每门课的成绩
}
printf("\n该学生的平均成绩为:%.2f", avg); // 输出平均成绩,保留两位小数
return 0;
}
```
输出结果为:
```
该学生的五门课成绩为:75 82 68 90 87
该学生的平均成绩为:80.40
```
通过利用c语言程序,设计一个菜单驱动的学生成绩管理程序,实现对学生成绩的各种管理。 按要求定义结构体数据类型,包括num(学号),name(姓名),score[5](5门课成绩),aver(5门课平均成绩),和sum(5门课总成绩),要求将下面功能都编写成独立的函数。 1.输入n个学生5门成绩的函数 2.计算每个学生的5门的总成绩和平均成绩。 3.计算n个学生的最高总分和最高平均分。 4.输入一个学号,输出该学生的学号、姓名和总分。 5.编写主函数集成上面4项功能。 6.程序能够进行异常处理,检查用户输入数据的有效性,在用户输入数据有错误(如类型错误)或无效时,不会中断程序的执行,程序具有一定的健壮性。
好的,下面是一个简单的C语言程序,实现了上述要求。请注意,该程序可能并不完美,您可以根据自己的需求进行修改和完善。
```
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX_STUDENT_NUM 100 // 最大学生数量
#define MAX_NAME_LEN 20 // 姓名最大长度
// 定义学生信息结构体
typedef struct {
int num; // 学号
char name[MAX_NAME_LEN]; // 姓名
int score[5]; // 5门课成绩
int sum; // 5门课总成绩
double aver; // 5门课平均成绩
} Student;
// 学生信息数组
Student students[MAX_STUDENT_NUM];
// 当前学生数量
int studentNum = 0;
// 输入n个学生5门成绩的函数
void inputScores() {
printf("请输入学生数量:");
scanf("%d", &studentNum);
if (studentNum > MAX_STUDENT_NUM) {
printf("学生数量超过最大值%d,请重新输入:", MAX_STUDENT_NUM);
scanf("%d", &studentNum);
}
for (int i = 0; i < studentNum; i++) {
printf("请输入第%d个学生的学号、姓名和5门课成绩:", i + 1);
scanf("%d %s %d %d %d %d %d", &students[i].num, students[i].name, &students[i].score[0], &students[i].score[1], &students[i].score[2], &students[i].score[3], &students[i].score[4]);
}
}
// 计算每个学生的5门的总成绩和平均成绩
void calculateScores() {
for (int i = 0; i < studentNum; i++) {
students[i].sum = 0;
for (int j = 0; j < 5; j++) {
students[i].sum += students[i].score[j];
}
students[i].aver = (double)students[i].sum / 5.0;
}
}
// 计算n个学生的最高总分和最高平均分
void calculateMaxScores() {
int maxSum = 0;
double maxAver = 0.0;
for (int i = 0; i < studentNum; i++) {
if (students[i].sum > maxSum) {
maxSum = students[i].sum;
}
if (students[i].aver > maxAver) {
maxAver = students[i].aver;
}
}
printf("最高总分为:%d\n", maxSum);
printf("最高平均分为:%.2f\n", maxAver);
}
// 输入一个学号,输出该学生的学号、姓名和总分
void outputScoreByNum() {
int num;
printf("请输入学生学号:");
scanf("%d", &num);
for (int i = 0; i < studentNum; i++) {
if (students[i].num == num) {
printf("学号:%d,姓名:%s,总分:%d\n", students[i].num, students[i].name, students[i].sum);
return;
}
}
printf("未找到学号为%d的学生。\n", num);
}
// 主函数
int main() {
int choice;
while (1) {
printf("请输入数字选择功能:\n");
printf("1. 输入n个学生5门成绩\n");
printf("2. 计算每个学生的5门总成绩和平均成绩\n");
printf("3. 计算n个学生的最高总分和最高平均分\n");
printf("4. 输入学号,输出该学生的学号、姓名和总分\n");
printf("5. 退出程序\n");
scanf("%d", &choice);
switch(choice) {
case 1:
inputScores();
break;
case 2:
calculateScores();
break;
case 3:
calculateMaxScores();
break;
case 4:
outputScoreByNum();
break;
case 5:
exit(0);
default:
printf("无效的选择,请重新输入。\n");
}
}
return 0;
}
```
在上述程序中,我们使用了结构体来存储每个学生的信息。在输入学生信息时,我们使用了scanf函数从控制台读取输入,并使用了循环来输入多个学生的信息。在计算学生成绩时,我们使用了循环来计算每个学生的总成绩和平均成绩,并使用了临时变量来记录最高总分和最高平均分。在输出学生信息时,我们使用了循环来查找输入学号对应的学生信息,并输出该学生的信息。在主函数中,我们使用了循环和switch语句来实现菜单驱动的功能,用户可以根据需要选择不同的功能。
请注意,上述程序可能存在一些不足之处,比如未进行输入数据的有效性检查等。在实际使用中,您需要根据实际情况进行完善和修改。
阅读全文