#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc, char *argv[])
{
FILE *fp1, *fp2, *fp3;
char code1[100][50], code2[100][50], code3[100][50];
int data1[50]={0}, data2[50]={0}, data3[50]={0}, i=0, j=0;
/*エラーチェック*/
if(argc!=4){
fprintf(stderr
,"エラー:ファイルが %d コ多いです\n",argc
-4); }
if((fp1
=fopen(argv
[1],"r"))==NULL
){ fprintf(stderr
,"エラー:ファイル %s を開けません\n",argv
[1]); }
if((fp2
=fopen(argv
[2],"r"))==NULL
){ fprintf(stderr
,"エラー:ファイル %s を開けません\n",argv
[1]); }
if((fp3
=fopen(argv
[3],"w"))==NULL
){ fprintf(stderr
,"エラー:ファイル %s を開けません\n",argv
[1]); }
/*在庫と入庫の読み込み*/
while(fscanf(fp1
,"%s%d",code1
[i
],&data1
[i
])!=EOF
){ i++;
}
while(fscanf(fp2
,"%s%d",code2
[j
],&data2
[j
])!=EOF
){ j++;
}
/*在庫の数を更新*/
for(i=0; i<50; i++){
for(j=i; j<50; j++){
if(strcmp(code3
[i
],code1
[j
])!=0){ data3[i]=data1[j];
break;
}
}
}
for(i=0; i<50; i++){
for(j=i; j<50; j++){
if(strcmp(code2
[i
],code3
[j
])==0){ data3[j]+=data2[i];
break;
}
data3[j]=data2[i];
break;
}
}
}
/*更新した在庫をファイルに出力*/
for(i=0; i<50; i++){
if(strcmp(code3
[i
],"\0")==0) break; fprintf(fp3
,"%4s%4d\n",code3
[i
],data3
[i
]); }
return(0);
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RkbGliLmg+CiNpbmNsdWRlPHN0cmluZy5oPgoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKewogIEZJTEUgKmZwMSwgKmZwMiwgKmZwMzsKICBjaGFyIGNvZGUxWzEwMF1bNTBdLCBjb2RlMlsxMDBdWzUwXSwgY29kZTNbMTAwXVs1MF07CiAgaW50IGRhdGExWzUwXT17MH0sIGRhdGEyWzUwXT17MH0sIGRhdGEzWzUwXT17MH0sIGk9MCwgaj0wOwoKICAvKuOCqOODqeODvOODgeOCp+ODg+OCryovCiAgaWYoYXJnYyE9NCl7CiAgICBmcHJpbnRmKHN0ZGVyciwi44Ko44Op44O877ya44OV44Kh44Kk44Or44GMICVkIOOCs+WkmuOBhOOBp+OBmVxuIixhcmdjLTQpOwogICAgZXhpdCgxKTsKICB9CiAgaWYoKGZwMT1mb3Blbihhcmd2WzFdLCJyIikpPT1OVUxMKXsKICAgIGZwcmludGYoc3RkZXJyLCLjgqjjg6njg7zvvJrjg5XjgqHjgqTjg6sgJXMg44KS6ZaL44GR44G+44Gb44KTXG4iLGFyZ3ZbMV0pOwogICAgZXhpdCgxKTsKICB9IAogIGlmKChmcDI9Zm9wZW4oYXJndlsyXSwiciIpKT09TlVMTCl7CiAgICBmcHJpbnRmKHN0ZGVyciwi44Ko44Op44O877ya44OV44Kh44Kk44OrICVzIOOCkumWi+OBkeOBvuOBm+OCk1xuIixhcmd2WzFdKTsKICAgIGV4aXQoMSk7CiAgfSAKICBpZigoZnAzPWZvcGVuKGFyZ3ZbM10sInciKSk9PU5VTEwpewogICAgZnByaW50ZihzdGRlcnIsIuOCqOODqeODvO+8muODleOCoeOCpOODqyAlcyDjgpLplovjgZHjgb7jgZvjgpNcbiIsYXJndlsxXSk7CiAgICBleGl0KDEpOwogIH0gCiAgCiAgLyrlnKjluqvjgajlhaXluqvjga7oqq3jgb/ovrzjgb8qLwogIHdoaWxlKGZzY2FuZihmcDEsIiVzJWQiLGNvZGUxW2ldLCZkYXRhMVtpXSkhPUVPRil7CiAgICBpKys7CiAgfQogIHdoaWxlKGZzY2FuZihmcDIsIiVzJWQiLGNvZGUyW2pdLCZkYXRhMltqXSkhPUVPRil7CiAgICBqKys7CiAgfQoKICAvKuWcqOW6q+OBruaVsOOCkuabtOaWsCovCiAgZm9yKGk9MDsgaTw1MDsgaSsrKXsKICAgIGZvcihqPWk7IGo8NTA7IGorKyl7CiAgICAgIGlmKHN0cmNtcChjb2RlM1tpXSxjb2RlMVtqXSkhPTApeyAgCiAgICAgICAgc3RyY3B5KGNvZGUzW2ldLGNvZGUxW2pdKTsKICAgICAgICBkYXRhM1tpXT1kYXRhMVtqXTsKICAgICAgICBicmVhazsKICAgICAgfQogICAgfQogIH0KICAKICBmb3IoaT0wOyBpPDUwOyBpKyspewogICAgZm9yKGo9aTsgajw1MDsgaisrKXsKICAgICAgaWYoc3RyY21wKGNvZGUyW2ldLGNvZGUzW2pdKT09MCl7CiAgICAgICAgZGF0YTNbal0rPWRhdGEyW2ldOwogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIGlmKHN0cmNtcChjb2RlM1tqXSwiXDAiKT09MCl7CiAgICAgICAgc3RyY3B5KGNvZGUzW2pdLGNvZGUyW2ldKTsKICAgICAgICBkYXRhM1tqXT1kYXRhMltpXTsKICAgICAgICBicmVhazsKICAgICAgfQogICAgfQogIH0KCiAgLyrmm7TmlrDjgZfjgZ/lnKjluqvjgpLjg5XjgqHjgqTjg6vjgavlh7rlipsqLwogIGZvcihpPTA7IGk8NTA7IGkrKyl7CiAgICBpZihzdHJjbXAoY29kZTNbaV0sIlwwIik9PTApIGJyZWFrOwogICAgZnByaW50ZihmcDMsIiU0cyU0ZFxuIixjb2RlM1tpXSxkYXRhM1tpXSk7CiAgfQogIAogIGZjbG9zZShmcDEpOwogIGZjbG9zZShmcDIpOwogIGZjbG9zZShmcDMpOwoKICByZXR1cm4oMCk7Cn0KCg==