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 Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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
```