1
0
mirror of https://github.com/renbaoshuo/202401-programming-assignments.git synced 2024-12-16 15:44:39 +00:00
202401-programming-assignments/【实践课外】15.结构体1/6-3 学生成绩比高低.md

78 lines
2.0 KiB
Markdown
Raw Permalink Normal View History

2024-12-11 03:41:51 +00:00
# 6-3 学生成绩比高低
学生结构体定义如下:
```
struct Student{
int sid;
int C;
int English;
};
```
其中`sid`是学号,`C`是C语言课程成绩`English`是英语课程成绩。学生的成绩按照这样的规则比较:<br>
* 先比较两门课的总成绩,总成绩高的为优;
* 若总成绩相同再比较C语言成绩C语言成绩高的为优
* 若C语言成绩也相同则说明两名学生成绩相等。
编写函数实现成绩的比较。
### 函数接口定义:
```c
int compareScore(const struct Student *s1, const struct Student *s2);
```
其中`s1`和`s2`是传入的参数,分别指向两名学生的结构体变量。函数返回值为`int`型,<br>
* 若`s1`所指学生成绩优于`s2`所指学生,返回`1`
* 若`s2`所指学生成绩优于`s1`所指学生,返回`-1`
* 若两学生成绩相等,返回`0`。
### 裁判测试程序样例:
```c
/* 此测试程序仅为示例,实际的测试程序可能不同。
注意:实际的测试程序可能有多组输入、进行多次比较,输入格式也有可能不同,
因此不要针对测试程序样例编写代码,而应当编写符合题目要求的函数 */
#include <stdio.h>
struct Student{
int sid;
int C;
int English;
};
int compareScore(const struct Student *s1, const struct Student *s2);
int main(){
struct Student zs, ls;
scanf("%d%d%d", &zs.sid, &zs.C, &zs.English);
scanf("%d%d%d", &ls.sid, &ls.C, &ls.English);
int r;
r = compareScore(&zs, &ls);
if(r < 0) printf("Less\n");
else if(r > 0) printf("Greater\n");
else printf("Equal\n");
return 0;
}
/* 你所编写的函数代码将被嵌在这里 */
```
### 输入样例1
对于样例测试程序的输入格式:
```in
1 95 90
2 90 91
```
### 输出样例1
对于样例测试程序的输出格式:
```out
Greater
```
### 输入样例2
对于样例测试程序的输入格式:
```in
1 90 95
2 95 90
```
### 输出样例2
对于样例测试程序的输出格式:
```out
Less
```