首页  > 考试管理  > c语言如何输出多个学生成绩

c语言如何输出多个学生成绩

2025-05-12 13:31:55
起步向前走
起步向前走已认证

起步向前走为您分享以下优质知识

在C语言中输出多个学生成绩,可以通过多种方式实现,具体取决于需求(如顺序输出、排序后输出等)。以下是几种常见的方法及示例代码:

一、顺序输出学生成绩

基本输入输出结构

使用`scanf`读取学生成绩,使用`printf`格式化输出。例如输入5个学生成绩并输出:

```c

include

int main() {

int scores;

printf("输入5个学生成绩:n");

for (int i = 0; i < 5; i++) {

scanf("%d", &scores[i]);

}

printf("学生成绩列表:n");

for (int i = 0; i < 5; i++) {

printf("学号:%d,成绩:%dn", i+1, scores[i]);

}

return 0;

}

```

结构体存储与输出

使用结构体存储学生信息(如姓名、学号、成绩),通过循环输出结构体数组:

```c

include

define STUDENT_COUNT 5

struct Student {

int id;

char name;

float score;

};

int main() {

struct Student students[STUDENT_COUNT];

printf("输入学生信息(学号 姓名 成绩):n");

for (int i = 0; i < STUDENT_COUNT; i++) {

scanf("%d %s %f", &students[i].id, students[i].name, &students[i].score);

}

printf("n学生成绩列表:n");

for (int i = 0; i < STUDENT_COUNT; i++) {

printf("学号:%d,姓名:%s,成绩:%.2fn", students[i].id, students[i].name, students[i].score);

}

return 0;

}

```

二、排序后输出学生成绩

冒泡排序实现

使用冒泡排序算法对学生成绩进行降序排序,再输出:

```c

include

void bubbleSort(float scores[], int n) {

for (int i = 0; i < n-1; i++) {

for (int j = 0; j < n-i-1; j++) {

if (scores[j] < scores[j+1]) {

float temp = scores[j];

scores[j] = scores[j+1];

scores[j+1] = temp;

}

}

}

}

int main() {

float scores;

printf("输入5个学生成绩:n");

for (int i = 0; i < 5; i++) {

scanf("%f", &scores[i]);

}

bubbleSort(scores, 5);

printf("n按成绩降序排序后的成绩:n");

for (int i = 0; i < 5; i++) {

printf("学号:%d,成绩:%.2fn", i+1, scores[i]);

}

return 0;

}

```

折半查找辅助输出

排序后使用折半查找法查找特定成绩(如90),并输出对应排名:

```c

include

int binarySearch(float scores[], int n, float target) {

int left = 0, right = n-1;

while (left