問題はこちら
No.547 未知の言語 - yukicoder
scanfを使うと空白区切りで読み込めるのでstrcmpで比較するだけ
char s[11][22]; char t[11][22]; main(){ int n; scanf("%d",&n); for(int i=0;i<n;i++)scanf("%s",s[i]); for(int i=0;i<n;i++)scanf("%s",t[i]); for(int i=0;i<n;i++)if(strcmp(s[i],t[i]))printf("%d\n%s\n%s",i+1,s[i],t[i]); }
まとめて1つの配列に読み込めばループも1つにできる
配列はchar型でなくても構わない
Nの読み込みなどに注意してざっくりまとめるとこうなる
s[25][6],n,i; main(){ for(;~scanf("%s",s[n]);n++);//nのincを中に入れるとn/2が1大きくなってしまう for(;!strcmp(s[i],s[++i+n/2]);); printf("%d\n%s\n%s",i,s[i],s[i+n/2]); }
for文を1つにまとめる
s[25][6],n,i; main(){ for(;~scanf("%s",s[n])?++n:!strcmp(s[i],s[++i+n/2]);); printf("%d\n%s\n%s",i,s[i],s[i+n/2]); }
112B