文件存入问题
将 10个学生的学号、姓名、英语、数学、C语言成绩存入文件中,再从文件中读出,按照总分从高到低进行排序,将结果输出到屏幕上和另一文件中。这个,代码怎么写?文件完全搞不清楚哦。呵呵。
搜索更多相关的解决方案:
文件
----------------解决方案--------------------------------------------------------
先向你老师搞清楚问题是怎么回事再来问也不迟
----------------解决方案--------------------------------------------------------
写了一个看看:
#include<stdio.h>
#include<conio.h>
int main()
{ FILE *fp;
fp=fopen("c:\\1.txt","w");
struct student
{
char num[30];
char name[30];
int math;
int C;
int english;
}person[10];
int i=0;
for(i=0;i<2;i++)
{
printf("%d student:\n",i);
printf("number:");
gets(person[i].num);
printf("name:");
gets(person[i].name);
printf("math:");
scanf("%d",&person[i].math);
printf("C:");
scanf("%d",&person[i].C);
printf("english:");
scanf("%d",&person[i].english);
fflush(stdin);
}
for(i=0;i<2;i++)
{
printf("number | name | math| C | english\n");
printf("%s %s %3d %3d %3d\n",person[i].num,person[i].name,person[i].math,person[i].C,person[i].english);
fprintf(fp,"%s%s%3d%3d%3d\n",person[i].num,person[i].name,person[i].math,person[i].C,person[i].english);
}
fclose(fp);
getch();
return 0;
}
----------------解决方案--------------------------------------------------------
不能运行哦。
----------------解决方案--------------------------------------------------------
for (i=0;i<10;i++)吧
还有 你吧包含的头文件空下格哈
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#include<conio.h>
#include<string.h>
struct student
{
char num[100];
char name[100];
int math;
int C;
int english;
}person[10],min;
int main()
{ int i,j,minn,ii;
FILE *fp;
// fp=fopen("c:\1.txt","w");
for(i=0;i<10;i++)
{
printf("%d student:\n",i);
printf("number:");
scanf("%s",person[i].num);
printf("name:");
scanf("%s",person[i].name);
printf("math:");
scanf("%d",&person[i].math);
printf("C:");
scanf("%d",&person[i].C);
printf("english:");
scanf("%d",&person[i].english);
fflush(stdin);
}
for(i=0;i<10;i++)
{
strcpy(min.name,person[i].name);
strcpy(min.num,person[i].num);
min.C=person[i].C;
min.english=person[i].english;
min.math=person[i].math;
minn=0;
for(j=i;j<10;j++)
{
if((person[j].math+person[j].C+person[j].english)<(min.C+min.english+min.math))
{
minn=j;
strcpy(min.name,person[j].name);
strcpy(min.num,person[j].num);
min.C=person[j].C;
min.english=person[j].english;
min.math=person[j].math;
}
}
for(j=minn;j>i;j--)
{ strcpy(person[j].name,person[j-1].name);
strcpy(person[j].num,person[j-1].num);
person[j].C=person[j-1].C;
person[j].english=person[j-1].english;
person[j].math=person[j-1].math;
}
strcpy(person[i].name,min.name);
strcpy(person[i].num,min.num);
person[i].C=min.C;
person[i].english=min.english;
person[i].math=min.math;
}
for(i=0;i<10;i++)
{
printf("number | name | math| C | english\n");
printf("%s\t%s\t%d\t%d\t%d\n",person[i].num,person[i].name,person[i].math,person[i].C,person[i].english);
//fprintf(fp,"%s%s%d%d%d\n",person[i].num,person[i].name,person[i].math,person[i].C,person[i].english);
}
//fclose(fp);
getch();
return 0;
}指针有问题,但是框架好了,留点给你自己改啊,呵呵
----------------解决方案--------------------------------------------------------