c语言验证学号是否正确,第一次来发帖,大家帮忙看上程序吧

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

我们那个文件老师坑爹的只讲了半节课,自己编从头错到尾,悲催啊!

哪位大神帮我看下

题目修改实验三中的实验题4,有十个学生、四门课程,用结构体定义学生的信息,实现:

将原有数据和计算出的平均分数存放在磁盘文件stud中。

文件的格式如下:

学号     姓名        数学   外语    体育  C语言  平均

100103  ZhangSan   70    80    93    78      81

100101 Lisi  63  74   82    90      73

….       ….         ….     ….     ….     ….

在向文件stud写入数据后,应检查验证stud文件中的内容是否正确。

代码

#include

#include

#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

{

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

#include

#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

{

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;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值