首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

第一次来发帖,大家帮忙看上程序吧

2013-01-19 
第一次来发帖,大家帮忙看下程序吧我们那个文件老师坑爹的只讲了半节课,自己编从头错到尾,悲催啊!哪位大神

第一次来发帖,大家帮忙看下程序吧
我们那个文件老师坑爹的只讲了半节课,自己编从头错到尾,悲催啊!
哪位大神帮我看下

题目修改实验三中的实验题4,有十个学生、四门课程,用结构体定义学生的信息,实现:
将原有数据和计算出的平均分数存放在磁盘文件stud中。
   文件的格式如下:
        学号     姓名        数学   外语    体育  C语言  平均
100103  ZhangSan   70    80    93    78      81
        100101 Lisi  63  74   82    90      73
        ….       ….         ….     ….     ….     ….
   在向文件stud写入数据后,应检查验证stud文件中的内容是否正确。
代码

#include<stdlib.h>
#include<stdio.h>
#define n 10;
struct student{
char ID;
char Name;
float sub[4];
float avg;
};
int main()
{
int i,j;
    struct student stu[n];
    FILE *fp;
float sum=0;
if((fp=("stud.txt","w"))==NULL)
{
printf("Can't open");
exit(1);
}
 fprintf(fp, "%-10s%-15s%-10s%-10s%-10s%-10s%-10s\n",
      "学号", "姓名", "数学", "外语", "体育", "C语言", "平均");
for(i=0;i<n;i++)
{
  fscanf(stdin,"%s%s",stu[i].ID,stu[i].Name);
      fprintf(fp,"%s\t%s",stu[i].ID,stu[i].Name);
  for(j=0;j<4;j++)
  {
  fscanf(stdin,"%f",&stu[i].sub[j]);
          fprintf(fp,"%f\t",stu[i].sub[j]);
  sum+=stu[i].sub[j];
  }
  stu[i].avg=sum/4;
  sum=0;
  fprintf(stdout,"%f\n",stu[i].avg);
  fprintf(fp,"%f\n",stu[i].avg);
}
fclose(fp);
return 0;
  

}
[解决办法]

#include<stdlib.h>
#include<stdio.h>
#define n 10
struct student
{
char ID;
char Name;
float sub[4];
float avg;
};

int main()
{
int i,j;
struct student stu[n];
FILE *fp;
float sum=0;

if((fp=fopen("stud.txt","w"))==NULL)
{
printf("Can't open");
exit(1);
}
 fprintf(fp, "%-10s%-15s%-10s%-10s%-10s%-10s%-10s\n",
      "学号", "姓名", "数学", "外语", "体育", "C语言", "平均");
for(i=0;i<n;i++)
{
  fscanf(stdin,"%s%s",stu[i].ID,stu[i].Name);
  fprintf(fp,"%s\t%s",stu[i].ID,stu[i].Name);
  for(j=0;j<4;j++)
  {
  fscanf(stdin,"%f",&stu[i].sub[j]);
  fprintf(fp,"%f\t",stu[i].sub[j]);
  sum+=stu[i].sub[j];
  }
  stu[i].avg=sum/4;
  sum=0;
  fprintf(stdout,"%f\n",stu[i].avg);
  fprintf(fp,"%f\n",stu[i].avg);
}
fclose(fp);
return 0;
}

热点排行