定义一个包含学生成绩(学号,姓名,成绩)的顺序表,读入相应的成绩信息来完成学生成绩表的创建。然后,(1)查找统计不及格的学生人数,(2)删除并以学号升序方式逐行输出不及格的学生信息。
时间: 2023-03-26 15:02:26 浏览: 118
好的,这是一个关于数据结构的问题。首先,我们需要定义一个结构体来存储学生的信息,包括学号、姓名和成绩。然后,我们可以使用顺序表来存储所有学生的信息。
具体实现步骤如下:
1. 定义结构体
```
typedef struct {
int id; // 学号
char name[20]; // 姓名
int score; // 成绩
} Student;
```
2. 创建顺序表并读入学生信息
```
#define MAX_SIZE 100 // 最大学生数
int main() {
Student students[MAX_SIZE];
int n; // 学生数
scanf("%d", &n);
for (int i = ; i < n; i++) {
scanf("%d %s %d", &students[i].id, students[i].name, &students[i].score);
}
// ...
}
```
3. 统计不及格学生人数
```
int count = ;
for (int i = ; i < n; i++) {
if (students[i].score < 60) {
count++;
}
}
printf("不及格学生人数:%d\n", count);
```
4. 删除并输出不及格学生信息
```
for (int i = ; i < n; i++) {
if (students[i].score < 60) {
printf("删除学生信息:%d %s %d\n", students[i].id, students[i].name, students[i].score);
for (int j = i; j < n - 1; j++) {
students[j] = students[j + 1];
}
n--;
i--;
}
}
```
最后,我们可以将以上代码整合起来,得到完整的程序: