#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;
}