下面一道C语言题有错误,不知道哪错了,请教高手

2025-04-29 10:03:06
推荐回答(4个)
回答1:

#include

int a[300],b[300],cnt=0;
void readdat();
void writedat();

void jsvalue()
{
int temp,ac,bc,cc,dc,i,j;//这里的定义与全局变量中的定义重名了,改掉就可以编译成功了,但是有内存泄露哦
for(i=0;i<6;i++)
{
ac=a[i]/1000;
bc=(a[i]-1000*ac)/100;
cc=(a[i]-1000*ac-100*bc)/10;
dc=a[i]%10;
if(ac+dc==bc+cc)
{
b[cnt]=a[i];
cnt=cnt+1;
}
}
for(i=0;i for(j=i+1;j if(b[i]>b[j])
{
temp=b[i];
b[i]=b[j];
b[j]=temp;
}
}

void main()
{
int i;
readdat();
jsvalue();
writedat();
printf("cnt=%d\n",cnt);
for(i=0;i printf("b[%d]=%d\n",i,b[i]);
}

void readdat()
{
FILE*fp;
int i;
fp=fopen("IN.DAT","r");
for(i=0;i<6;i++)
fscanf(fp,"%d",&a[i]);
fclose(fp);
}

void writedat()
{
FILE*fp;
int i;
fp=fopen("OUT.DAT","w");
fprintf(fp,"%d\n",cnt);

for(i=0;i fprintf(fp,"%d\n",b[i]);
fclose(fp);
}

回答2:

printf("c=%d,z=%ld\n".c.z);改为printf("c=%d,z=%ld\n",c,z);后面是用逗号 还有直接用main()系统认为是返回int型,就缺少一个return语句

回答3:

再把主函数放到最后试试

回答4:

H VRA VYRV ,AR V