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);
}求解哪些地方错了

 C:\\Users\\Administrator\\Desktop\\

明显的是路径错了。。。

 fp1=fopen ("desktop:\stu_score1.txt","r");
 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 ("1.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++)
    {
        fscanf(fp1,"%d %s %s %d",&stu[i].group,stu[i].stunum,stu[i].name,&stu[i].grade);
        //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-gave)*d2;
        pggrade[i]=(stu[i].grade-gave)*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;
        strcpy(nstu[i].stunum,stu[i].stunum);
        //nstu[i].stunum = stu[i].stunum;
        strcpy(nstu[i].name,stu[i].name);
        //nstu[i].name = stu[i].name;
        nstu[i].grade = fgrade[i];
    }
    for (i=0;i<53;i++)
    {
        char buf[100] = {0};
        sscanf(buf,"%d %s %s %d",nstu[i].group,nstu[i].stunum,nstu[i].name,nstu[i].grade);
        fwrite(buf,sizeof(buf),0,fp2);
    }
    fclose(fp2);
}