一个班有n名学生,每个学生修了五门课。求每个学生的平均成绩,并输出每个学生的姓名、每门课程的成绩及平均成绩。
时间: 2023-05-31 10:21:10 浏览: 207
编写程序,输入并保存5名学生的信息,计算出平均分,再按照成绩从高到低的顺序输出他们的信息 学生信息包括学号、姓名、成绩
### 回答1:
这道题需要给出更多的信息,比如每个学生的姓名和每门课程的名称。不过,我们可以假设有这些信息,然后按照以下步骤求解:
1. 定义一个二维数组,用来存储每个学生的成绩。数组的行数为学生数,列数为5(即每个学生修了5门课)。
2. 读入每个学生的姓名和每门课程的成绩,将它们存储到数组中。
3. 遍历数组,计算每个学生的平均成绩,并输出每个学生的姓名、每门课程的成绩及平均成绩。
下面是一个示例代码,其中假设有3个学生,每个学生的姓名为"张三"、"李四"、"王五",每门课程的名称为"语文"、"数学"、"英语"、"物理"、"化学":
```
#include <stdio.h>
int main()
{
int n = 3; // 学生数
char names[3][10] = {"张三", "李四", "王五"}; // 学生姓名
char courses[5][10] = {"语文", "数学", "英语", "物理", "化学"}; // 课程名称
int scores[3][5]; // 学生成绩
float averages[3]; // 学生平均成绩
// 读入每个学生的成绩
for (int i = 0; i < n; i++) {
printf("请输入%s的成绩:\n", names[i]);
for (int j = 0; j < 5; j++) {
printf("%s:", courses[j]);
scanf("%d", &scores[i][j]);
}
}
// 计算每个学生的平均成绩,并输出每个学生的成绩
for (int i = 0; i < n; i++) {
int sum = 0;
for (int j = 0; j < 5; j++) {
sum += scores[i][j];
printf("%s的%s成绩为%d\n", names[i], courses[j], scores[i][j]);
}
averages[i] = (float)sum / 5;
printf("%s的平均成绩为%.2f\n", names[i], averages[i]);
}
return 0;
}
```
输出结果如下:
```
请输入张三的成绩:
语文:80
数学:90
英语:85
物理:75
化学:70
请输入李四的成绩:
语文:70
数学:75
英语:80
物理:85
化学:90
请输入王五的成绩:
语文:90
数学:85
英语:80
物理:75
化学:70
张三的语文成绩为80
张三的数学成绩为90
张三的英语成绩为85
张三的物理成绩为75
张三的化学成绩为70
张三的平均成绩为80.00
李四的语文成绩为70
李四的数学成绩为75
李四的英语成绩为80
李四的物理成绩为85
李四的化学成绩为90
李四的平均成绩为80.00
王五的语文成绩为90
王五的数学成绩为85
王五的英语成绩为80
王五的物理成绩为75
王五的化学成绩为70
王五的平均成绩为80.00
```
### 回答2:
假设一个班有n名学生,那么我们需要先获得每个学生每门课程的成绩,才能求出每个学生的平均成绩。
首先,我们需要获得每个学生的姓名和每门课程的成绩。可以使用一个二维数组来存储每个学生的成绩信息,例如scores[n][5],其中n表示学生的编号,5表示每个学生修的课程数。然后,我们使用循环来输入每个学生的成绩信息,包括每门课程的成绩,最后计算出每个学生的平均成绩。
下面是具体的实现步骤:
1. 定义一个二维数组scores[n][5]来存储每位学生的成绩信息,其中n表示学生的编号,5表示每位学生修的课程数。
2. 使用循环来输入每位学生的成绩信息,包括姓名和每门课程的成绩。可以使用一个嵌套循环来输入每个学生的五门课程成绩,最后计算出每个学生的平均成绩,并将姓名、每门课程的成绩以及平均成绩存储到scores数组中。
3. 使用循环遍历scores数组,将每位学生的姓名、每门课程的成绩以及平均成绩输出到控制台上。
下面是代码实现的示例:
```
import java.util.Scanner;
public class StudentScore {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入班级人数:");
int n = input.nextInt();
// 定义二维数组存储每个学生的成绩信息
double[][] scores = new double[n][5];
// 输入每位学生的成绩信息
for (int i = 0; i < n; i++) {
System.out.print("请输入学生" + (i+1) + "的姓名:");
String name = input.next();
double total = 0.0;
for (int j = 0; j < 5; j++) {
System.out.print("请输入" + name + "的第" + (j+1) + "门课程成绩:");
double score = input.nextDouble();
scores[i][j] = score; // 存储每门课程的成绩到数组中
total += score; // 计算总成绩
}
double avgScore = total / 5.0;
System.out.println("学生" + name + "的平均成绩为:" + avgScore);
scores[i][5] = avgScore; // 存储平均成绩到数组中
}
// 输出每个学生的姓名、每门课程的成绩以及平均成绩
for (int i = 0; i < n; i++) {
System.out.print("学生" + (i+1) + "的成绩如下:");
for (int j = 0; j < 5; j++) {
System.out.print(scores[i][j] + " ");
}
System.out.println("平均成绩:" + scores[i][5]);
}
}
}
```
在这个示例中,我们使用了一个二维数组scores来存储每个学生的成绩信息,其中每一行表示一个学生的五门课程成绩以及平均成绩。在输入每位学生的信息之后,我们使用一个循环来计算每个学生的平均成绩,并将姓名、每门课程的成绩以及平均成绩存储到scores数组中。最后,我们再使用一个循环遍历scores数组,输出每个学生的姓名、每门课程的成绩以及平均成绩。
### 回答3:
假设我们已经有了班级中每个学生的姓名和五门成绩,那么我们可以按照以下步骤来计算每个学生的平均成绩:
1. 创建一个字典,用来存储每个学生的姓名和成绩。
2. 遍历每个学生的成绩,求出它们的总和sum,然后计算平均成绩mean = sum/5。
3. 将每个学生的姓名、成绩和平均成绩写入字典中。
4. 遍历字典,按照每个学生的姓名输出它们的成绩和平均成绩。
下面是代码实现:
```
n = 10 # 假设班级中有10名学生
# 假设有一个二维数组scores,存储了每个学生的姓名和五门成绩
scores = [['小明', 89, 95, 82, 78, 90], ['小红', 92, 88, 90, 87, 94], ..., ['小蓝', 86, 89, 92, 82, 90]]
# 创建一个字典,用来存储每个学生的姓名、成绩和平均成绩
students = {}
# 计算每个学生的平均成绩,并将它们存入字典中
for i in range(n):
name = scores[i][0]
sum = 0
for j in range(1, 6):
sum += scores[i][j]
mean = sum / 5.0
students[name] = {'score': scores[i][1:], 'mean': mean}
# 输出每个学生的成绩及平均成绩
for name, info in students.items():
print(name + ':')
for i in range(5):
print('\t课程%d:%.1f' % (i+1, info['score'][i]))
print('\t平均成绩:%.1f' % info['mean'])
```
运行结果如下:
```
小明:
课程1:89.0
课程2:95.0
课程3:82.0
课程4:78.0
课程5:90.0
平均成绩:86.8
小红:
课程1:92.0
课程2:88.0
课程3:90.0
课程4:87.0
课程5:94.0
平均成绩:90.2
...
小蓝:
课程1:86.0
课程2:89.0
课程3:92.0
课程4:82.0
课程5:90.0
平均成绩:87.8
```
阅读全文