ページ 11

if文のelseについて

Posted: 2015年5月20日(水) 02:27
by kkk
このプログラムでコンパイルしたのですが、else以下の人2の勝ちです。という文が出てこないのですがどこか修正するところがあれば、どなたか指摘の方をお願いします。

/*
ジャンケンの勝敗を表示
*/

#include <stdio.h>

int main(void)
{
int n1, n2;

printf("グーなら0チョキなら1パーなら2で表示。");
printf("人1:"); scanf("%d", &n1);
printf("人2:"); scanf("%d", &n2);

if(n1 == n2) {
printf("あいこです。\n");
} else if ("n1 == 0 && n2 == 1 || n1 == 1 && n2 == 2 || n1 == 2 && n2 == 0") {
printf("人1の勝ちです。\n");
} else {
printf("人2の勝ちです。\n");
}

return (0);
}

Re: if文のelseについて

Posted: 2015年5月20日(水) 02:29
by YuO
else if の箇所の条件式が,文字列になっています。
文字列リテラルはNULLではないので,常に真となるため,"人2の勝ちです。\n"を表示することがなくなります。

Re: if文のelseについて

Posted: 2015年5月20日(水) 02:49
by kkk
具体的にどう直せばいいですか?
初心者なのでどう直せばいいかあまり理解できてないんですみません(:_;)

Re: if文のelseについて

Posted: 2015年5月20日(水) 07:57
by みけCAT
コードはBBcodeを有効にした状態でcodeたぐで囲んでいただけると、見やすくてありがたいです。
kkk さんが書きました:具体的にどう直せばいいですか?
初心者なのでどう直せばいいかあまり理解できてないんですみません(:_;)
・17行目のifの後ろの全角スペースを削除してください。
・17行目の条件式の中の"を全て削除してください。