当前位置: 代码迷 >> C语言 >> 文件存入问题
  详细解决方案

文件存入问题

热度:160   发布时间:2008-01-08 16:29:38.0
文件存入问题
将 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;
}指针有问题,但是框架好了,留点给你自己改啊,呵呵
----------------解决方案--------------------------------------------------------
  相关解决方案