菜鸟的C语言小程序,请高手帮我看看问题在哪里并改写下,万分感谢

#include <stdio.h>
#include <stdlib.h>

int main()
{
struct Node
{
int year;
int month;
int day;
}data11,data12,data21;

int t11,t21,tt,cl=0,tmp;
float t13,t23,t14,t24,tmp13,tmp14;
FILE *f1,*f2,*f3;
f1=fopen("天相查询结果.txt","r");
f2=fopen("国泰安查询结果.txt","r");
f3=fopen("差错.txt","w");

if(f1==NULL||f2==NULL||f3==NULL)return 0;

for(;;)
{
tt=0;
fscanf(f2,"%d %4d-%2d-%2d %s %s ",&t21,&data21.year,&data21.month,&data21.day,sz_buffer,sx_buffer);
if(strcasecmp(sz_buffer,"NULL")||strcasecmp(sx_buffer,"NULL"))
b_null=1;
else
{
b_null=0;
sscanf(sz_buffer,"%f",&t23);
sscanf(sx_buffer,"%f",&t24)
}

tmp=0; //以下3行为临时变量,用于保存文档1中符合条件的最新的数值
tmp13=0;
tmp14=0;

while(!feof(f1)) //循环体开始,用于遍历文档1中记录
{
fscanf(f1,"%d %4d%2d%2d %4d%2d%2d %f %f",&t11,&data11.year,&data11.month,&data11.day,&data12.year,&data12.month,&data12.day,&t13,&t14);

if(data12.year==data21.year&&data12.month==data21.month&&data12.day==data21.day)
tt=1;
else
tt=0;

if(1==b_null)
{
fprintf(f3,"代码:%05d 日期:%04d%02d%02d 销售费用:天相:%.3f 国泰安:%s 营业收入:天相:%.3f 国泰安:%s\n",t21,data21.year,data21.month,data21.day,tmp13,sz_buffer,tmp14,sx_buffer);
}
if(t11 == t21 && tt == 1 )
{
if(t13 != t23 || t14 != t24) //临时存储符合条件的记录的数值
{
tmp=1;
tmp13=t13;
tmp14=t14;

}
}
} //循环体结束

if(cl == 0)
{
fprintf(f3,"不同的有:\n");
cl=1;
}
if(tmp == 1) //防止文档1中没有与文档2有对应关系的行的时候进行记录
{
fprintf(f3,"代码:%05d 日期:%04d%02d%02d 销售费用:天相:%.3f 国泰安:%.3f 营业收入:天相:%.3f 国泰安:%.3f\n",t21,data21.year,data21.month,data21.day,tmp13,t23,tmp14,t24);
}
fseek(f1, 0L, 0);

if(feof(f2))
{

if(cl==0)
fprintf(f3,"两者相差无误");
fclose(f1);
fclose(f2);
fclose(f3);
break;
}
}
return 0;
}

错在这几个地方:

1. sz_buffer没有定义
2. sx_buffer没有定义
3. if(strcasecmp(sz_buffer,"NULL")||strcasecmp(sx_buffer,"NULL")) 这一句中strcasecmp写错了,应该是strcmp
4. b_null没有定义
5. sscanf(sx_buffer,"%f",&t24) 这一句最后少了一个分号
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答