(1)C语言编写程序,实现读取学生学号和英语成绩信息,并输出。 (2)根据上题库中的成绩,查找英语成绩为 90 的学生的学号,并输出。
时间: 2024-12-03 12:31:24 浏览: 51
(1) 在C语言中,你可以使用`scanf`函数从标准输入读取学号和英语成绩,然后使用`printf`函数将其输出。这里是一个简单的示例程序:
```c
#include <stdio.h>
int main() {
int student_id, english_score;
// 读取学号和英语成绩
printf("请输入学生学号和英语成绩(以空格分隔):");
scanf("%d %d", &student_id, &english_score);
// 输出信息
printf("学生学号: %d, 英语成绩: %d\n", student_id, english_score);
return 0;
}
```
运行这个程序时,会提示用户输入学号和英语成绩,然后显示它们。
(2) 要根据学生成绩查找特定分数的学生学号,你需要遍历已读入的数据。假设有一个数组或结构体存储了所有的学生数据,以下是查找功能的一个简单实现:
```c
#include <stdio.h>
#include <stdlib.h> // 使用 malloc 动态分配内存
// 假设我们用一个动态数组来储存学生数据
typedef struct Student {
int id;
int english_score;
} Student;
Student* find_student_with_english_score(Student* students, int n, int target_score) {
for (int i = 0; i < n; i++) {
if (students[i].english_score == target_score) {
return &students[i];
}
}
// 如果没有找到,返回 NULL 或者抛出错误
return NULL;
}
int main() {
int num_students;
printf("请输入学生总数:");
scanf("%d", &num_students);
Student* students = (Student*)malloc(sizeof(Student) * num_students); // 动态分配内存
for (int i = 0; i < num_students; i++) {
printf("请输入第%d名学生的学号和英语成绩(以空格分隔):", i+1);
scanf("%d %d", &students[i].id, &students[i].english_score);
}
Student* result = find_student_with_english_score(students, num_students, 90);
if (result != NULL) {
printf("找到英语成绩为90的学生学号: %d\n", result->id);
} else {
printf("没有找到英语成绩为90的学生。\n");
}
free(students); // 释放内存
return 0;
}
```
运行此程序后,会先输入每个学生的信息,然后查找英语成绩为90的学生,并输出其学号。如果没有找到,则输出相应提示。记得在完成任务后释放动态分配的内存。
阅读全文