ここでの目標は、stdinから1の数値を読み込み、次に数値のセットを読み込み、2つがbijectionであるかどうかを確認することです。私がそれを正しく理解していれば、最初の数字が数字のセットに入っていなければならず、セットに重複した数字はないはずです。stdinから読み込んでCの数値を比較する
サンプル入力
3 1 2 3
サンプル出力
YES
サンプル入力
5 2 3 4 5 2
私のエラーはFRに来ていると思われるサンプル出力
NO
マイ入力
3
1 2 3
マイ出力
NO
om重複をチェックする配列。常にコードのcheckDups
1にこの作品を設定されています
for(x=0; x < 20; x++) {
if(n == numbers[x]) checkNums = 1;
for(y=0; y < 20; y++) {
if(x != y && numbers[x] == numbers[y]) {
checkDups = 1;
}
}
}
完全なコード
int n;
int numbers[21];
int i = 0;
int x = 0;
int y = 0;
int checkDups = 0;
int checkNums = 0;
scanf("%d", &n);
while(i < 20 && scanf("%d", &numbers[i]) == 1) i++;
for(x=0; x < 20; x++) {
if(n == numbers[x]) checkNums = 1;
for(y=0; y < 20; y++) {
if(x != y && numbers[x] == numbers[y]) {
checkDups = 1;
}
}
}
if(checkNums == 1 && checkDups == 0) printf("YES");
else printf("NO");
(I = 0のため、 '、読みにくいコードを記述しないでくださいを使用しないでください"%d"、&numbers [i])); ++ i) 'ははるかに読みやすく、' if'ステートメントはコードに何も追加しませんが、読みにくいです。おかげで@ –
改訂されます。あなたは他のエラーを見つけましたか? – Adjit
これらはエラーではありませんが、うまく読みやすくて美しいコードが見つかるはずです。 –