从文件读出学生信息数据,按成绩从高到底排序,并输出其中成绩次高者的所有数据。
来源:互联网 发布:手机写字板软件 编辑:程序博客网 时间:2024/06/10 04:21
从该文件读出学生信息数据,按成绩从高到底排序,并输出其中成绩次高者的所有数据。
#include <stdio.h>#include <stdlib.h>typedef struct student{ char number[20]; char name[20]; char sex[10]; char birth[20]; char province[20]; int score; struct student *next;}student;void getSecond(student *s[],int sn);void sort(student *s[],int sn);int main(){ FILE* fd; int flag = 0; int sn = 10;//读取前面十个学生的信息 student * s[sn]; //申请内存空间 for(;flag<sn;flag++) { s[flag] = (student *) malloc(sizeof(student)); } //打开文件 if((fd = fopen("d:\g.txt","r"))==NULL) { printf("文件读取失败.\n"); return 0; } printf("文件读取成功.\n"); //读取文件 for( flag = 0; flag < sn; flag++) { fscanf(fd,"%s%s%s%s%s%d",s[flag]->number,s[flag]->name,s[flag]->sex, s[flag]->birth,s[flag]->province,&s[flag]->score); printf("%s%16s%8s%16s%16s%8d\n",s[flag]->number,s[flag]->name,s[flag]->sex, s[flag]->birth,s[flag]->province,s[flag]->score); } //关闭文件 fclose(fd); getSecond(s,sn);//输出成绩第二的学生信息 sort(s,sn);//按照分数高低输出所有学生信息 return 0;}void getSecond(student *s[],int sn){ //寻找次高分数的学生信息 int ranking = 1 ; int i,j; for(i = 0; i < sn; i++) { for(j = 0; j<sn; j++) { if(s[i]->score > s[j]->score) ranking++; } if(ranking == sn ) break;//sn-1表示次高分数标志 else ranking = 1; } printf("\n"); printf("%s%16s%8s%16s%16s%8d\n",s[i]->number,s[i]->name,s[i]->sex, s[i]->birth,s[i]->province,s[i]->score);}void sort(student *s[],int sn){ student * temp; int i=0,j=0; for( ;i<sn-1; i++) { for(j = i; j<sn; j++) { if(s[i]->score < s[j]->score) { temp = s[i]; s[i] = s[j]; s[j] = temp; } } } printf("\n"); //输出所有排序后学生的信息 for(i=0;i<sn;i++) { printf("%s%16s%8s%16s%16s%8d\n",s[i]->number,s[i]->name,s[i]->sex, s[i]->birth,s[i]->province,s[i]->score); }}
本文需要注意的是:
1、文件的读写:
打开文件:
if((fd = fopen("d:\g.txt","r"))==NULL) { printf("文件读取失败.\n"); return 0; }2、读取文件:
fscanf是按照一定的格式输入,本文里面的数据格式为:10903070101 张三丰 男 19851009 河南省 79
for( flag = 0; flag < sn; flag++) { fscanf(fd,"%s%s%s%s%s%d",s[flag]->number,s[flag]->name,s[flag]->sex, s[flag]->birth,s[flag]->province,&s[flag]->score); printf("%s%16s%8s%16s%16s%8d\n",s[flag]->number,s[flag]->name,s[flag]->sex, s[flag]->birth,s[flag]->province,s[flag]->score); }
3、d:\g.txt文件内容如下:
10903070101 张三丰 男 19851009 河南省 7910903070102 郭靖 男 19851009 江苏省 8510903070103 黄蓉 女 19851009 江苏省 9810903070104 杨康 男 19851009 河北省 6010903070105 令狐冲 男 19851009 河北省 8810903070106 任盈盈 女 19851009 河北省 7710903070107 洪七公 男 19851009 河南省 6410903070108 欧阳锋 男 19851009 福建省 6710903070109 阿紫 女 19851009 广西省 8210903070110 段誉 男 19851009 云南省 6910903070111 梅超风 女 19851009 广西省 7210903070112 穆念慈 女 19851009 陕西省 6910903070113 霍青桐 女 19851009 四川省 8110903070114 陈家洛 男 19851009 四川省 7310903070115 香香公主 女 19851009 西藏自治区 8510903070116 乔峰 男 19851009 山东省 7810903070117 虚竹 男 19851009 山东省 8510903070118 王语嫣 女 19851009 湖北省 8310903070119 张无忌 男 19851009 湖北省 7810903070120 张翠山 男 19851009 湖北省 7910903070121 殷素素 女 19851009 湖南省 6510903070122 谢逊 男 19851009 四川省 8610903070123 杨逍 男 19851009 贵州省 7110903070124 纪晓芙 女 19851009 四川省 6510903070125 赵敏 女 19851009 辽宁省 6410903070126 杨过 男 19851009 陕西省 7610903070127 小龙女 女 19851009 江西省 8110903070128 胡斐 男 19851009 湖南省 8010903070129 袁紫衣 女 19851009 广东省 9110903070130 凤天南 男 19851009 陕西省 76
- 从文件读出学生信息数据,按成绩从高到底排序,并输出其中成绩次高者的所有数据。
- 从文件读出学生信息数据,按成绩从高到底排序,并输出其中成绩次高者的所有数据。
- //有5名学生保存在结构体数组中,编程查找成绩最高者,输出该学生全部信息。 // //对上述5名学生数组,按成绩从高到低排序,并输出。
- 从键盘上输入以下的数据:"TOM:89|JERRY:90|TONY:95",数据格式为“姓名:成绩|姓名:成绩|姓名:成绩”,对输入的内容按成绩进行排序,并将结果按成绩由高到低排序。
- 1061 有N个学生的数据,将学生数据按成绩高低排序,如果成绩相同则按姓名字符的字母序排序,如果姓名的字母序也相同则按照学生的年龄排序,并输出N个学生排序后的信息。
- 将数据从文件中读出并排序
- java 从键盘输入学生成绩,找出最高分,并输出学生成绩等级;
- 从文件中读取学生成绩,进行等级划分,并输出至另外一个文件中
- 从键盘输入10个学生的姓名和成绩,按字典序排列学生的姓名并输出(姓名和成绩对应关系保持不变)
- 统计学生成绩信息并按要求输出相关信息
- 综合排序 学生信息输入并排序 键盘录入信息 (姓名,语文成绩,数学成绩,英语成绩),按总分高到低输出
- 30. 完成sort函数,实现:按照成绩从高到低的顺序输出各学生的信息。
- 键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台
- 使用TreeSet集合存储学生姓名成绩,并按照总成绩从高到低排序。
- 从键盘上输入学生成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。
- 一组成绩,一组学生,按照成绩的大小,由高到底排序出姓名和成绩(二叉树)实现
- 设计一个学生类,其中包含学号、姓名、成绩等数据成员,创建学生对象并且倒入到文件file.txt,然后由文件读取到另一个学生对象并输出,试编程实现。
- 用Java编程把学生的成绩从高到低排序
- 三. ServerSocket 用法详解(二) .
- 动态增加表格及读取动态表格中的值
- JAVA学习——IO操作(一)
- sip 协议扩展
- sap java connector(JCO)
- 从文件读出学生信息数据,按成绩从高到底排序,并输出其中成绩次高者的所有数据。
- Flex自定义事件和组件的使用方法
- android 布局中的单位及分辨率自解
- oracle 权限说明
- SqlDataAdapter和SqlCommandBuilder删除数据
- Flex RemoteObject(转载)
- mysql日期和时间格式转
- devious、trick、have a bite、grow red、at the sight of
- jquery 动态获取生成的html