假设每班人数最多不超过30人,具体人数由键盘输入,试编程打印最高分及其学号。 要求:用一维数组和指针变量作函数参数,编程打印某班一门课成绩的最高分和学号。请编写相应的程序代码,并调试运行出正确结果。 用c语言编写
时间: 2024-11-06 11:23:51 浏览: 8
在C语言中,你可以创建一个函数,接收一维数组和其长度作为参数,然后遍历数组找到最高分并记录对应的学号。以下是一个简单的示例:
```c
#include <stdio.h>
// 定义结构体表示学生信息,包含学号和分数
typedef struct {
int student_id;
int score;
} Student;
// 函数声明,接收数组和长度作为参数
void find_highest_score(int* scores, int size) {
// 初始化最高分和对应的学生编号为第一个元素的值
int highest_score = scores[0];
int max_index = 0;
// 遍历数组,比较每个学生的分数
for (int i = 1; i < size; i++) {
if (scores[i] > highest_score) {
highest_score = scores[i];
max_index = i;
}
}
// 打印最高分和对应的学号
printf("最高分为:%d,学号为:%d\n", highest_score, max_index + 1); // 加1是因为索引从0开始计数
}
int main() {
// 输入班级人数和成绩
int num_students;
printf("请输入班级人数(不超过30): ");
scanf("%d", &num_students);
// 检查输入是否合法
if (num_students > 30) {
printf("人数超过限制,请重新输入.\n");
return 1;
}
// 创建一维数组存储成绩
int scores[num_students];
printf("请输入每个学生的分数: ");
for (int i = 0; i < num_students; i++) {
scanf("%d", &scores[i]);
}
// 调用函数找出最高分及其学号
find_highest_score(scores, num_students);
return 0;
}
```
这个程序首先获取用户输入的班级人数和每个学生的分数,然后调用`find_highest_score`函数查找最高分及对应的学号。注意,由于题目要求最多30人,所以需要检查输入的人数是否符合条件。
阅读全文