c语言提交作业一般交哪个文件,c语言文件操作,结构体老师要统计所有同学的c语言成绩总分和排名,但是他又懒得算,就让你写个程序来帮他算。他将同学们的成绩存入了文件score.txt中,下面是score....

#include 

#define SCORERADIX    0.7

typedef struct tagScore

{

double    m_nSumScore;

long    m_lACM;

int        m_nClass;

int        m_nDone;

int        m_nScore;

char    m_strName[15];

}SCORE,*PSCORE;

int main()

{

FILE *fpSrc = NULL,*fpDst = NULL;

PSCORE pScore = NULL;

long lCnt = 0l,i = 0l;

int nIncr = 0;

fpSrc = fopen("score.txt","r");

if (NULL == fpSrc)

{

/*提示信息*/

goto CLEARNNONE;

}

fpDst = fopen("rank.txt","w");

if (NULL == fpDst)

{

/*提示信息*/

goto CLEARNSRC;

}

if (EOF == fscanf(fpSrc,"%ld",&lCnt) || lCnt 

{

/*提示信息*/

goto CLEARNALL;

}

pScore = (PSCORE)calloc(lCnt,sizeof(SCORE));

if (NULL == pScore)

{

/*提示信息*/

goto CLEARNALL;

}

for(i = 0l;i 

{

if (EOF == fscanf(fpSrc,"%s%ld%d%d%d",pScore[i].m_strName,&pScore[i].m_lACM,&pScore[i].m_nClass,&pScore[i].m_nDone,&pScore[i].m_nScore))

{

/*提示信息*/

break;

}

pScore[i].m_nSumScore = (double)pScore[i].m_nScore * SCORERADIX;

nIncr = pScore[i].m_nClass + pScore[i].m_nDone;

if (pScore[i].m_lACM >= 80)

{

nIncr = 30;

}

else if (pScore[i].m_lACM > 30)

{

nIncr += ((pScore[i].m_lACM - 30) / 10) * 2;

if (nIncr > 30)

{

nIncr = 30;

}

}

else

{

/*do nothing*/

}

pScore[i].m_nSumScore += nIncr;

}

/*排序*/

for(i = 0l;i 

{

/*........*/

}

/*输出*/

for(i = 0l;i 

{

fprintf(fpDst,"%s %f\n",pScore[i].m_strName,pScore[i].m_nSumScore);

}

CLEARNALL:

free(pScore);

fclose(fpDst);

CLEARNSRC:

fclose(fpSrc);

CLEARNNONE:

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值