earlc1 2017-06-07 06:46 采纳率: 0%
浏览 1532

C语言从学生档案文件中读取平时分并按某种计算出平时成绩并创建一个新文件输出

平时成绩=基准分+小组奖惩分+个人全班奖惩分+个人小组奖惩分;
小组奖惩分=(小组得分-小组平均分)*d1
个人全班奖惩分=(个人分-个人全班平均分)*d2
个人小组奖惩分=(个人分-组内个人平均分)*d3
基准分为80d1=0.35,d2=0.25,d3=0.3
#include
#include
struct STU_info
{
int group;
char stunum[10];
char name [8];
int grade;
};
struct NEWSTU_info
{
int group;
char stunum[10];
char name [8];
int ngrade;
};
void main ()
{
FILE *fp1,*fp2;
int i,j,total,tave,gave,pgave[9],gtotal[9],std=80;
double group_grade[53],pggrade[53],ptgrade[53],fgrade[53];
double d1=0.35,d2=0.25,d3=0.3;
fp1=fopen ("desktop:\stu_score1.txt","r");
if (fp1==NULL)
{
printf ("the file : stu_score1.txt not found!");
exit (-1);
}
STU_info stu[53],nstu[53];
for (i=0;i<53;i++)
fgets (stu[i],20,fp1);
for (i=0,total=0;i<53;i++)
total+=stu[i].grade;
gave=total/9;
tave=total/53;
for (i=0,j=0;i<9;i++)
{
for (;j<6;j++)
{
gtotal[i]+=stu[j].grade;
}
j+=6;
}
for (i=0;i<9;i++)
pgave[i]=gtotal[i]/6;
for (i=0;i<53;i++)
{
group_grade[i]=(gtotal[i]-gave)*d1;
ptgrade[i]=(stu[i].grade-tgave)*d2;
pggrade[i]=(stu[i].grade-pgave)*d3;
fgrade[i]=std+group_grade[i]+ptgrade[i]+pggrade[i];
}
fclose(fp1);
fp2=fopen ("desktop:\stu_score2.txt","w");
for (i=0;i<53;i++)
{
nstu[i].group=stu[i].group;
nstu[i].stunum=stu[i].stunum;
nstu[i].name=stu[i].name;
nstu[i].grade=fgrade[i];
}
for (i=0;i<53;i++)
fputs(nstu[i],fp2);
}求解哪些地方错了

  • 写回答

2条回答 默认 最新

  • shen_wei 2017-06-07 06:46
    关注
     C:\\Users\\Administrator\\Desktop\\
    

    明显的是路径错了。。。

     fp1=fopen ("desktop:\stu_score1.txt","r");
    
    评论

报告相同问题?

悬赏问题

  • ¥15 如何实验stm32主通道和互补通道独立输出
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题