
星海幻梦为您分享以下优质知识
以下是使用数组接收成绩的详细方法,结合了多种编程语言的实现思路:
一、基本步骤
根据学生人数定义一维数组(如 `double scores` 存储10个成绩)。
通过循环逐个读取用户输入的成绩并存储到数组中。
计算总分、最高分、最低分等统计信息。
将统计结果打印输出。
二、示例代码
1. Java实现(10个学生成绩)
```java
import java.util.Scanner;
public class ScoreInput {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double[] scores = new double;
double sum = 0, max = scores, min = scores;
System.out.println("请输入10个学生成绩:");
for (int i = 0; i < scores.length; i++) {
scores[i] = sc.nextDouble();
sum += scores[i];
if (scores[i] >
max) max = scores[i];
if (scores[i] < min) min = scores[i];
}
double average = sum / scores.length;
System.out.printf("最高分:%.2f(第%d名)n", max, (int)(Math.round(max/100)));
System.out.printf("最低分:%.2f(第%d名)n", min, (int)(Math.round(min/100)));
System.out.printf("平均分:%.2fn", average);
}
}
```
2. C语言实现(5个学生成绩)
```c
include
int main() {
int scores;
printf("请输入5个学生成绩:n");
for (int i = 0; i < 5; i++) {
scanf("%d", &scores[i]);
}
int sum = 0, max = scores, min = scores;
printf("最高分:%d(第%d名)n", max, 1);
printf("最低分:%d(第%d名)n", min, 1);
printf("平均分:%dn", sum / 5);
return 0;
}
```
3. C实现(动态输入学生成绩)
```csharp
using System;
class Program {
static void Main() {
Console.Write("请输入学生人数:");
int n = Convert.ToInt32(Console.ReadLine());
double[] scores = new double[n];
double sum = 0, max = scores, min = scores;
for (int i = 0; i < n; i++) {
Console.WriteLine($"请输入第{i+1}个学生的成绩:");
scores[i] = Convert.ToDouble(Console.ReadLine());
sum += scores[i];
if (scores[i] >
max) max = scores[i];
if (scores[i] < min) min = scores[i];
}
double average = sum / n;
Console.WriteLine($"最高分:{max:F2}(第1名)");
Console.WriteLine($"最低分:{min:F2}(第1名)");
Console.WriteLine($"平均分:{average:F2}");
}
}
```
三、注意事项
建议添加输入验证,防止非数字输入导致程序崩溃。
Java和C支持动态数组,无需提前定义固定大小;C语言需使用固定大小数组或动态内存分配。
若需按分数排序,可结合冒泡排序或选择排序算法实现。
通过以上方法,可灵活实现学生成绩的输入与统计,适用于不同编程语言和数据规模需求。