void main()
{ float f=555.5678,ff
int a[10]={ 0,1,2,3,4,5,6,7,8,9 },b[10],i
FILE *fp
if ( fp=fopen("TEXT.dat","wb+") )
{ fwrite(&f,sizeof(float),1,fp)
for ( i=0i<10i++ ) fwrite(&a[i],sizeof(int),1,fp)
fclose(fp)
} else printf("无法建立文件。\n")goto ERROREND
if ( fp=fopen("TEXT.dat","rb") )
{ fread(&ff,sizeof(float),1,fp)
for ( i=0i<10i++ ) fread(&b[i],sizeof(int),1,fp)
fclose(fp)
} else printf("无法打开文件。\n")goto ERROREND
printf("%.2f ",ff)for ( i=0i<10i++ ) printf("%d ",b[i])printf("\n")
ERROREND:
}
你这个程序的问题在于:fun2应该放到fun1的前面去
因为你在fun1里面用到了fun2函数,这样的情况,要么fun2定义在fun1前面,要么在fun1之前加fun2的函数声明
然后说这个程序如果可以正常运行的结果是:(一步一步给你解释)
fun1里面
a+=a 结果a=22 b+=b 结果b=38 c=fun2(22,38)
跳到fun2里面
c=a*b%3 结果是c=22*38%3=2
再回到fun1里面,fun1的值是c*c 结果是4
所以最后输出的结果是4
把第二行改成int main(void)然后下面每行printf之前,全部加上//,(每行前的//代表将这一行注释化,就和无视掉差不多),然后一行行去掉//,每多去掉就运行一次,由上至下的调试,很容易找出错误,
还有就是,每台机子的 运行环境都有些许差异,一些较小的差异是正常的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)