#include"stdio.h"
#include"stdlib.h"
FILE*fp;
int i;
float sc1,sc2,sc3;
int creat()
{
if((fp=fopen("cj.dat","w"))==NULL)
{
printf("\n打开失败");
exit(1);
}
for(i=0;i<5;i++)
{
printf("请输入第%d个同学的3门成绩:",i+1);
scanf("%d,%d,%d",&sc1,&sc2,&sc3);
fprintf(fp,"%d,%d,%d\n",sc1,sc2,sc3);
}
fclose(fp);
return 0;
}
int aver()
{
float sum1=0,sum2=0,sum3=0;
if((fp=fopen("cj.dat","r"))==NULL)
{
printf("\n打开失败");
exit(1);
}
for(i=0;i<5;i++)
{
fscanf(fp,"%d,%d,%d",&sc1,&sc2,&sc3);
sum1=sum1+sc1;
sum2=sum2+sc2;
sum3=sum3+sc3;
}
printf("3门成绩平均分分别为:%d,%d,%d\n",sum1/5,sum2/5,sum3/5);
return 0;
}
main()
{
int t;
printf("1-输入3名同学的3门成绩\n");
printf("2-计算各科的平均分\n");
printf("请输入要执行功能对应的数字\n");
while(1)
{
scanf("%d",&t);
switch(t)
{
case 1:creat();break;
case 2:aver();break;
}
}
}
printf("3门成绩平均分分别为:%d,%d,%d\n",sum1/5,sum2/5,sum3/5);
改为
printf("3门成绩平均分分别为:%f,%f,%f\n",sum1/5,sum2/5,sum3/5);
你从输入开始就不对了。浮点数的输入和输出你都得用%f格式化,不能用%d。%d是用来格式化整数的
所有的scanf、fscanf、printf、fprintf都需要改一下
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632