atcorder9/4B問題についてhttps://atcoder.jp/contests/abc217/tasks/abc217_b
問題文
AtCoder では現在、 ABC , ARC , AGC , AHC の
4 つのコンテストが定期的に開催されています。
AtCoder で現在定期的に開催されているコンテストは
S1 , S2 , S3 とあと1 つは何ですか?
制約
S1 , S2 ,
S3 はそれぞれ、 ABC , ARC , AGC , AHC のいずれかである。
S1 , S2 , S3 は相異なる。
コードを次のように書いたところ、
#include <stdio.h>
#include <string.h>
int main(){
char s1[3], s2[3], s3[3];
scanf("%s", s1);
scanf("%s", s2);
scanf("%s", s3);
if(strcmp(s1, "ABC")!=0 && strcmp(s2, "ABC")!=0 && strcmp(s3, "ABC")!=0) {printf("ABC");}
else if(strcmp(s1, "AGC")!=0 && strcmp(s2, "AGC")!=0 && strcmp(s3, "AGC")!=0) {printf("AGC");}
else if(strcmp(s1, "AHC")!=0 && strcmp(s2, "AHC")!=0 && strcmp(s3, "AHC")!=0) {printf("AHC");}
else{printf("ARC");}
return 0;
}
実行結果が次のようになってしまいました。
$ ./a.exe
AGC
ABC
ARC
ABC
なにがおかしいのか確かめてみるために、コードを次のように改良してs1、s2、s3が見えるようにしました。
#include <stdio.h>
#include <string.h>
int main(){
char s1[3], s2[3], s3[3];
scanf("%s", s1);
scanf("%s", s2);
scanf("%s", s3);
printf("%s\n", s1);
printf("%s\n", s2);
printf("%s\n", s3);
if(strcmp(s1, "ABC")!=0 && strcmp(s2, "ABC")!=0 && strcmp(s3, "ABC")!=0) {printf("ABC");}
else if(strcmp(s1, "AGC")!=0 && strcmp(s2, "AGC")!=0 && strcmp(s3, "AGC")!=0) {printf("AGC");}
else if(strcmp(s1, "AHC")!=0 && strcmp(s2, "AHC")!=0 && strcmp(s3, "AHC")!=0) {printf("AHC");}
else{printf("ARC");}
return 0;
}
そうすると、実行結果が次のようになってしまいました。
$ ./a.exe
AGC
ABC
ARC
ARC
ABC
どこが間違っているのでしょうか。教えてください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/09/04 17:00
2021/09/04 20:35
2021/09/06 15:47