mirror of
https://github.com/renbaoshuo/202401-programming-assignments.git
synced 2024-12-16 15:44:39 +00:00
78 lines
2.0 KiB
Markdown
78 lines
2.0 KiB
Markdown
|
# 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
|
|||
|
```
|