1004. 成绩排名
来源:互联网 发布:条形码数据采集器用法 编辑:程序博客网 时间:2024/06/06 04:22
原题描述如下:
读入n名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。
输入格式:每个测试输入包含1个测试用例,格式为
第1行:正整数n 第2行:第1个学生的姓名 学号 成绩 第3行:第2个学生的姓名 学号 成绩 ... ... ... 第n+1行:第n个学生的姓名 学号 成绩其中姓名和学号均为不超过10个字符的字符串,成绩为0到100之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。
输出格式:对每个测试用例输出2行,第1行是成绩最高学生的姓名和学号,第2行是成绩最低学生的姓名和学号,字符串间有1空格。
输入样例:3Joe Math990112 89Mike CS991301 100Mary EE990830 95输出样例:
Mike CS991301Joe Math990112我用的结构体,打算熟悉一下结构体的一些定义和用法。
#include <stdio.h>#include <string.h>struct STUDENT{ char name [ 11 ] ; char id [ 11 ] ; int score ;};int main( ){ struct STUDENT stu[ 101 ] ; struct STUDENT temp; //注意变量temp的数据类型 int n, i, j ; scanf("%d",&n) ; for ( i = 1 ; i <= n ; i ++ ) scanf("%s %s %d",stu[ i ].name, stu[ i ].id, &stu[ i ].score); for ( i = 1 ; i <= n ; i ++ ) for ( j = i ; j <= n ; j ++ ) if ( stu[ i ].score > stu[ j ].score ) { temp = stu[ j ] ; stu[ j ] = stu[ i ] ; stu[ i ] = temp ; } printf("%s %s\n",stu[ n ].name,stu [ n ].id ); printf("%s %s\n",stu[ 1 ].name,stu[ 1 ].id ); return 0;}
代码本身思路是很简单的,其中定义结构体的语句发生了变化。
也可定义为
typedef struct Student{ char name; char id; int score;}Stu; //Stu stu[ 100 ];
第二个出错点在结构体变量排序赋值,Stu型和int型并不能进行交换。
其实这道题不用结构体也很容易,直接用二维数组,只存下最高,最低,及当前情况 即可,一边输入,一遍比较大小更改值。(以下转载内容详细见链接)
#include <stdio.h>#include <string.h>int main(){ int N; scanf("%d", &N); char name[2][11], id[2][11], curname[11], curid[11]; int grade[2] = {-1, 101}, curgrade; for(int i = 0; i < N; i++) { scanf("%s %s %d", curname, curid, &curgrade); if(curgrade > grade[0]) { strcpy(name[0], curname); strcpy(id[0], curid); grade[0] = curgrade; } if(curgrade < grade[1]) { strcpy(name[1], curname); strcpy(id[1], curid); grade[1] = curgrade; } } printf("%s %s\n%s %s", name[0], id[0], name[1], id[1]); return 0;}作者:OliverLew链接:http://www.jianshu.com/p/887a0424d707來源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
阅读全文
0 0
- 1004. 成绩排名
- 1004. 成绩排名
- 1004. 成绩排名
- 1004.成绩排名
- 1004. 成绩排名
- 1004. 成绩排名
- 1004. 成绩排名
- 1004. 成绩排名
- 1004. 成绩排名
- 1004. 成绩排名
- 1004. 成绩排名
- 1004. 成绩排名
- 1004.成绩排名
- 1004.成绩排名
- 1004. 成绩排名
- 1004. 成绩排名
- 1004. 成绩排名
- 1004.成绩排名
- 并发无锁队列学习之一
- 状态dp学习、
- lintcode刷题系列:数据结构queue
- JSONP方式解决跨域问题
- Git学习笔记 chapter04--撤销修改和删除文件
- 1004. 成绩排名
- iOS开发常见技术链接分享
- 批量删除,传入一个长字符串分割成不同的数组
- 小甲鱼PE详解之输入表(导入表)详解(PE详解07)
- mina自定义编解码
- eureka官方示例--服务注册
- 贪心--cf478-c Table Decoration
- 【Java笔记】set接口的实现实例和解释
- 205. Isomorphic Strings