C语言用一维数组求10个学生成绩
时间: 2024-11-12 13:44:31 浏览: 82
在C语言中,我们可以使用一维数组来存储10个学生的成绩。首先,我们需要定义一个数组来存放这些成绩,每个元素代表一个学生的一门课的成绩。假设我们仅有一个成绩项,可以这样做:
```c
#include <stdio.h>
int main() {
// 定义一个包含10个元素的整型数组,用于存储10个学生的成绩
int scores[10];
// 初始化数组,这里仅为示例,实际上应该根据实际情况输入成绩
for (int i = 0; i < 10; i++) {
scores[i] = 0; // 用0表示未输入
printf("请输入第%d位同学的成绩:", i + 1);
scanf("%d", &scores[i]);
}
// 打印出所有学生的成绩
printf("\n每位同学的成绩是:\n");
for (int i = 0; i < 10; i++) {
printf("学生%d的成绩:%d\n", i + 1, scores[i]);
}
return 0;
}
```
在这个程序中,我们先创建了一个长度为10的`scores`数组,然后通过循环获取并存储10个学生的成绩。最后,再次遍历数组打印出每个学生的成绩。
相关问题
用C语言,二维数组,统计学生的成绩和学号(可用函数实现)
在C语言中,你可以定义一个函数来统计学生的成绩和学号。这里有一个简单的例子,假设我们有二维数组`student_scores`存储了每个学生的成绩,我们可以创建一个名为`process_scores`的函数来完成这个任务:
```c
#include <stdio.h>
// 定义二维数组结构体来包含学号和成绩
typedef struct {
int student_id;
float score;
} Student;
// 函数来统计学生信息
void process_scores(Student scores[], int num_students) {
int total_students = 0;
int highest_score = 0;
int lowest_score = INT_MAX;
for (int i = 0; i < num_students; i++) {
total_students++;
if (scores[i].score > highest_score)
highest_score = scores[i].score;
else if (scores[i].score < lowest_score)
lowest_score = scores[i].score;
printf("学号 %d 的成绩: %.2f\n", scores[i].student_id, scores[i].score);
}
printf("总共有 %d 名学生\n", total_students);
printf("最高分: %.2f\n", highest_score);
printf("最低分: %.2f\n", lowest_score);
}
int main() {
// 假设有如下学生成绩数据
Student student_data[] = {
{1, 85.0},
{2, 92.5},
{3, 78.0},
{4, 96.0},
{5, 88.5}
};
int num_students = sizeof(student_data) / sizeof(student_data[0]);
process_scores(student_data, num_students);
return 0;
}
C语言只使用一维数组二维数组按降序输出学生姓名学号成绩
假设有一个结构体类型为`Student`,包含学生的姓名、学号和成绩三个字段,可以按照以下方式定义:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENTS 100
typedef struct {
char name[20];
int id;
int score;
} Student;
```
接下来,我们可以定义一个包含多个`Student`类型元素的一维数组或二维数组,然后按照成绩的降序输出学生的姓名、学号和成绩。
一维数组示例代码如下:
```c
int main() {
Student students[MAX_STUDENTS];
int n, i, j;
printf("请输入学生个数:");
scanf("%d", &n);
for (i = 0; i < n; i++) {
printf("请输入第%d个学生的姓名、学号、成绩:", i + 1);
scanf("%s%d%d", students[i].name, &students[i].id, &students[i].score);
}
// 冒泡排序按成绩降序排列
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (students[j].score < students[j + 1].score) {
Student tmp = students[j];
students[j] = students[j + 1];
students[j + 1] = tmp;
}
}
}
// 输出结果
printf("按成绩降序输出学生信息:\n");
for (i = 0; i < n; i++) {
printf("%s %d %d\n", students[i].name, students[i].id, students[i].score);
}
return 0;
}
```
二维数组示例代码如下:
```c
int main() {
Student students[MAX_STUDENTS][3];
int n, i, j;
printf("请输入学生个数:");
scanf("%d", &n);
for (i = 0; i < n; i++) {
printf("请输入第%d个学生的姓名、学号、成绩:", i + 1);
scanf("%s%d%d", students[i][0].name, &students[i][1].id, &students[i][2].score);
}
// 冒泡排序按成绩降序排列
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (students[j][2].score < students[j + 1][2].score) {
Student tmp[3];
memcpy(tmp, students[j], sizeof(Student) * 3);
memcpy(students[j], students[j + 1], sizeof(Student) * 3);
memcpy(students[j + 1], tmp, sizeof(Student) * 3);
}
}
}
// 输出结果
printf("按成绩降序输出学生信息:\n");
for (i = 0; i < n; i++) {
printf("%s %d %d\n", students[i][0].name, students[i][1].id, students[i][2].score);
}
return 0;
}
```
阅读全文
相关推荐














