从文件读出学生信息数据,按成绩从高到底排序,并输出其中成绩次高者的所有数据。
来源:互联网 发布:cf手游刷雷神软件 编辑:程序博客网 时间:2024/06/10 03:40
#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 = 5;//读取前面十个学生的信息
student *s[5];
//申请内存空间
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);
}
}
#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 = 5;//读取前面十个学生的信息
student *s[5];
//申请内存空间
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);
}
}
- 从文件读出学生信息数据,按成绩从高到底排序,并输出其中成绩次高者的所有数据。
- 从文件读出学生信息数据,按成绩从高到底排序,并输出其中成绩次高者的所有数据。
- //有5名学生保存在结构体数组中,编程查找成绩最高者,输出该学生全部信息。 // //对上述5名学生数组,按成绩从高到低排序,并输出。
- 从键盘上输入以下的数据:"TOM:89|JERRY:90|TONY:95",数据格式为“姓名:成绩|姓名:成绩|姓名:成绩”,对输入的内容按成绩进行排序,并将结果按成绩由高到低排序。
- 1061 有N个学生的数据,将学生数据按成绩高低排序,如果成绩相同则按姓名字符的字母序排序,如果姓名的字母序也相同则按照学生的年龄排序,并输出N个学生排序后的信息。
- 将数据从文件中读出并排序
- java 从键盘输入学生成绩,找出最高分,并输出学生成绩等级;
- 从文件中读取学生成绩,进行等级划分,并输出至另外一个文件中
- 从键盘输入10个学生的姓名和成绩,按字典序排列学生的姓名并输出(姓名和成绩对应关系保持不变)
- 统计学生成绩信息并按要求输出相关信息
- 综合排序 学生信息输入并排序 键盘录入信息 (姓名,语文成绩,数学成绩,英语成绩),按总分高到低输出
- 30. 完成sort函数,实现:按照成绩从高到低的顺序输出各学生的信息。
- 键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台
- 使用TreeSet集合存储学生姓名成绩,并按照总成绩从高到低排序。
- 从键盘上输入学生成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。
- 一组成绩,一组学生,按照成绩的大小,由高到底排序出姓名和成绩(二叉树)实现
- 设计一个学生类,其中包含学号、姓名、成绩等数据成员,创建学生对象并且倒入到文件file.txt,然后由文件读取到另一个学生对象并输出,试编程实现。
- 用Java编程把学生的成绩从高到低排序
- Codeforces Round #200 (Div. 1) (树上的线段树)
- 黑马程序员之输入输出
- C++设计模式之Builder(建造者)模式
- barcode4j 条形码使用
- 计算机科学中最重要的32个算法
- 从文件读出学生信息数据,按成绩从高到底排序,并输出其中成绩次高者的所有数据。
- eclipse中显示代码行数
- Struts bean标签
- android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context r
- nginx中gdb调试出错(No sysbol table is loaded.Use the "file" command)
- 大端模式与小端模式
- MFC总结之CListCtrl用法及技巧(一)
- ObjectHook
- BMP、PCX、PNG、JPEG、GIF图形格式区别