if文のelseについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
kkk

if文のelseについて

#1

投稿記事 by kkk » 10年前

このプログラムでコンパイルしたのですが、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);
}

YuO
記事: 947
登録日時: 15年前
住所: 東京都世田谷区

Re: if文のelseについて

#2

投稿記事 by YuO » 10年前

else if の箇所の条件式が,文字列になっています。
文字列リテラルはNULLではないので,常に真となるため,"人2の勝ちです。\n"を表示することがなくなります。

kkk

Re: if文のelseについて

#3

投稿記事 by kkk » 10年前

具体的にどう直せばいいですか?
初心者なのでどう直せばいいかあまり理解できてないんですみません(:_;)

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: if文のelseについて

#4

投稿記事 by みけCAT » 10年前

コードはBBcodeを有効にした状態でcodeたぐで囲んでいただけると、見やすくてありがたいです。
kkk さんが書きました:具体的にどう直せばいいですか?
初心者なのでどう直せばいいかあまり理解できてないんですみません(:_;)
・17行目のifの後ろの全角スペースを削除してください。
・17行目の条件式の中の"を全て削除してください。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

閉鎖

“C言語何でも質問掲示板” へ戻る