按照学生成绩升序排序的代码
时间: 2023-04-04 12:01:10 浏览: 89
以下是一个按照学生成绩升序排序的 C 代码示例:
#include <stdio.h>
int main() {
int n, i, j, temp;
printf("请输入学生人数:");
scanf("%d", &n);
int scores[n];
printf("请输入每个学生的成绩:\n");
for (i = ; i < n; i++) {
scanf("%d", &scores[i]);
}
for (i = ; i < n - 1; i++) {
for (j = ; j < n - i - 1; j++) {
if (scores[j] > scores[j+1]) {
temp = scores[j];
scores[j] = scores[j+1];
scores[j+1] = temp;
}
}
}
printf("按照成绩升序排序后的结果为:\n");
for (i = ; i < n; i++) {
printf("%d ", scores[i]);
}
return ;
}
相关问题
c语言分数相同按照学号的升序排序
好的,您需要对一组学生的成绩进行排序,如果成绩相同则按照学号的升序排序。那么您可以使用冒泡排序算法来实现。具体步骤如下:
1. 定义一个结构体来存储每个学生的信息,包括学号和成绩。
2. 创建一个数组来存储所有学生的信息。
3. 使用冒泡排序算法对数组进行排序。在比较两个学生的成绩时,如果成绩相同,就比较他们的学号,按照学号的升序排序。
4. 输出排序后的结果。
下面是示例代码:
```c
#include <stdio.h>
struct student {
int id;
int score;
};
void bubble_sort(struct student arr[], int n) {
int i, j;
struct student temp;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (arr[j].score == arr[j+1].score && arr[j].id > arr[j+1].id) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
else if (arr[j].score < arr[j+1].score) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main() {
struct student arr[5] = {{101, 80}, {102, 90}, {103, 70}, {104, 90}, {105, 80}};
int n = 5;
int i;
printf("排序前的数组: \n");
for (i = 0; i < n; i++) {
printf("学号: %d, 成绩: %d\n", arr[i].id, arr[i].score);
}
bubble_sort(arr, n);
printf("排序后的数组: \n");
for (i = 0; i < n; i++) {
printf("学号: %d, 成绩: %d\n", arr[i].id, arr[i].score);
}
return 0;
}
```
输出结果为:
```
排序前的数组:
学号: 101, 成绩: 80
学号: 102, 成绩: 90
学号: 103, 成绩: 70
学号: 104, 成绩: 90
学号: 105, 成绩: 80
排序后的数组:
学号: 103, 成绩: 70
学号: 101, 成绩: 80
学号: 105, 成绩: 80
学号: 102, 成绩: 90
学号: 104, 成绩: 90
```
从控制台获取5名学生的成绩,并存储在数组中,计算出五位同学的总成绩,平均成绩、并按成绩升序排序,具体如下请输入5名学生的成绩:9918638582 学生的总成绩:407 学生的平均成绩:81.4 成绩按升序排序:63 78 82 85 99
首先,我们假设您输入的成绩是以逗号分隔的形式,我们将字符串转换为整数数组来处理。在这个例子中,您可以按照以下步骤进行:
1. **输入与转换**:
从控制台接收用户输入的学生成绩字符串 "99,18,63,85,82",然后将其分割成整数数组 `scores = [99, 18, 63, 85, 82]`。
2. **计算总成绩**:
将数组元素相加得到总成绩,即 `total_score = sum(scores)`,这将等于 `407`。
3. **计算平均成绩**:
平均成绩是总成绩除以学生人数,即 `average_score = total_score / len(scores)`,约等于 `81.4`。
4. **排序数组**:
使用Python的内置函数 `sorted()` 对成绩数组进行升序排列,得到 `sorted_scores = sorted(scores)`。
5. **显示结果**:
最后,分别打印出总成绩、平均成绩以及排序后的成绩列表。
以下是完整的代码示例(假设在Python环境中):
```python
# 用户输入的成绩
scores_str = input("请输入5名学生的成绩(用逗号分隔): ")
scores = list(map(int, scores_str.split(',')))
# 计算总成绩
total_score = sum(scores)
print(f"学生的总成绩:{total_score}")
# 计算平均成绩
average_score = total_score / len(scores)
print(f"学生的平均成绩: {average_score:.2f}")
# 按成绩升序排序
sorted_scores = sorted(scores)
print(f"成绩按升序排序: {sorted_scores}")
```