第四章第11课 我编的程序错哪了?
#include <stdio.h>
float fun ( float h )
{float t,r;
int s,u;
t=h*1000;
s=(int)(h*100);
s=s*10;
r=t-s;
u=(int)(h*100);
if(r>=5)
{u=u+1;
return ((float)u)/100;}
else
{t=t-r;
return t/1000;}
}
main( )
{ float a;void NONO ();
printf ("Enter a: "); scanf ( "%f", &a );
printf ( "The original data is : " );
printf ( "%f \n\n", a );
printf ( "The result : %f\n", fun ( a ) );
NONO( );
}
void NONO ()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,
输出数据,关闭文件。 */
int i ;
float a ;
FILE *rf, *wf ;
rf = fopen("in.dat","r") ;
wf = fopen("out.dat","w") ;
for(i = 0 ; i < 20 ; i++) {
fscanf(rf, "%f", &a) ;
fprintf(wf, "%f\n", fun(a)) ;
}
fclose(rf) ;
fclose(wf) ;
}
我觉得你是对的,思路是对的,结果也是对的,如果你是因为科举网没有得分的话,那可能是科举网答案系统的不完善,还有你的代码确实是冗长了点,可以精简点,我帮你删除了几个不需要的句子,你可以去看看,看能行不:
int s,u,r;
s=(int)(h*1000);
r=s%10;
u=(int)(h*100);
if(r>=5)
u=u+1;
return((float)u)/100;