定义一个类型struct student,请编写函数fun1()找出成绩最高的学生记录
时间: 2024-01-06 13:01:48 浏览: 35
struct student {
char name[20];
int score;
};
void fun1(struct student students[], int num) {
if (num <= 0) {
printf("学生记录为空\n");
return;
}
int max_index = 0;
for (int i = 1; i < num; i++) {
if (students[i].score > students[max_index].score) {
max_index = i;
}
}
printf("成绩最高的学生是:%s,成绩为:%d\n", students[max_index].name, students[max_index].score);
}
在上面的代码中,我们首先定义了一个struct student类型,包括学生的姓名和成绩。然后编写了一个函数fun1,该函数可以找出成绩最高的学生记录。在函数中,我们通过遍历所有学生的成绩,找出成绩最高的学生的下标,然后输出该学生的姓名和成绩。
调用该函数时,只需要将存储学生记录的数组和数组长度作为参数传入即可。如果学生记录为空,函数会输出提示信息。如果有学生记录,则会输出成绩最高的学生信息。
相关问题
用c语言写出定义一个类型struct student, 他有下列三个数据项:姓名(name)char类型【10】学号(number)char类型【10】成绩(score)现有如下数据zhangliang 19040301 87 lihong 18040302 92 yanfeng 20040303 83将他们存入struct student数组中请编写函数fun1(),函数的功能是找出成绩最高的学生记录,通过形参返回主函数
以下是用C语言实现的代码:
```c
#include <stdio.h>
#include <string.h>
struct student {
char name[10];
char number[10];
int score;
};
void fun1(struct student stu[], int n, struct student *max) {
int i;
*max = stu[0]; // 初始化成绩最高的学生为第一个学生
for(i = 1; i < n; i++) {
if(stu[i].score > (*max).score) {
*max = stu[i]; // 如果找到成绩更高的学生,则更新max指针指向的对象
}
}
}
int main() {
struct student stu[3] = {
{"zhangliang", "19040301", 87},
{"lihong", "18040302", 92},
{"yanfeng", "20040303", 83}
};
struct student maxstu;
fun1(stu, 3, &maxstu);
printf("The student with the highest score is: %s, %s, %d\n", maxstu.name, maxstu.number, maxstu.score);
return 0;
}
```
在上面的代码中,定义了一个结构体类型`struct student`,它包含了三个数据项:姓名、学号和成绩。在`main`函数中,定义了一个包含3个学生记录的数组`stu`,并且调用`fun1`函数来寻找成绩最高的学生记录。`fun1`函数通过形参返回了成绩最高的学生记录,即使用指针`max`来存储成绩最高的学生记录对象的地址。在`fun1`函数中,使用循环和条件判断来寻找成绩最高的学生记录。最后,在`main`函数中,打印出成绩最高的学生记录的姓名、学号和成绩。
用C语言fun函数找出成绩最低学生记录
可以使用以下代码来找出成绩最低的学生记录:
```c
#include <stdio.h>
struct student {
char name[50];
int score;
};
void fun(struct student stu[], int n) {
int min_score = stu[0].score;
int min_index = 0;
for (int i = 1; i < n; i++) {
if (stu[i].score < min_score) {
min_score = stu[i].score;
min_index = i;
}
}
printf("最低分学生的姓名是:%s,分数是:%d\n", stu[min_index].name, stu[min_index].score);
}
int main() {
struct student stu[3] = {
{"张三", 80},
{"李四", 60},
{"王五", 70}
};
fun(stu, 3);
return 0;
}
```
这个程序定义了一个结构体 `student`,包含学生的姓名和分数。`fun` 函数接受一个 `student` 数组和数组长度作为参数,遍历数组找出分数最低的学生记录,并输出该学生的姓名和分数。在 `main` 函数中,我们定义了一个包含三个学生记录的数组,并调用 `fun` 函数来找出分数最低的学生。