C言語で

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

C言語で

#1

投稿記事 by けん » 8年前

#include <stdio.h>

int main(void)
{
int x;

printf("整数を入力してください:");
scanf("%d",&x);

if(x%2 == 0)
printf("その割り切れます。\n");

else if(x%2 == 1)
printf("その数のあまりは1です。\n");

else(x%3 == 2)
printf("その数のあまりは2です。\n");

return(0);
}
17行目に;をつけろといわれ実行できないのですが何故でしょうか?;はつけているのに

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: C言語で

#2

投稿記事 by softya(ソフト屋) » 8年前

else(x%3 == 2)と言う書き方はC言語にはないですね。
else if(x%3 == 2)だと思います。
コンパイル検証していないので、他にも有ったらすいません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
Dixq (管理人)
管理人
記事: 1661
登録日時: 13年前
住所: 北海道札幌市
連絡を取る:

Re: C言語で

#3

投稿記事 by Dixq (管理人) » 8年前

xが正の数であるとすると
if(x%2 == 0)

else if(x%2 == 1)
で条件を全て満たしているのでそれ以降のif文には入らないのでは?

baby2478nishi
記事: 52
登録日時: 8年前
住所: 兵庫県姫路市

Re: C言語で

#4

投稿記事 by baby2478nishi » 8年前

そもそも、elseはif,else ifに入らないものが自動的にはいるのでelseに条件式をつけること自体が間違っています。

box
記事: 2002
登録日時: 13年前

Re: C言語で

#5

投稿記事 by box » 8年前

けん さんが書きました:

コード:

    if(x%2 == 0)
        printf("その割り切れます。\n");
こうじゃなかったら2で割ると1あまるに決まっているので
けん さんが書きました:

コード:

    else if(x%2 == 1)
ここは単に

コード:

    else
で十分でしょう。そして、
けん さんが書きました:

コード:

    else(x%3 == 2)
ここは

コード:

    if (x % 3 == 2)
と書けばよいでしょう。

ところで、
けん さんが書きました:

コード:

    printf("その割り切れます。\n");
    printf("その数のあまりは1です。\n");
    printf("その数のあまりは2です。\n");
上から順に、
その数は2で割り切れます。
その数を2で割ったあまりは1です。
その数を3で割ったあまりは2です。
とかいう風に書くのがおそらく正しいでしょう。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: C言語で

#6

投稿記事 by softya(ソフト屋) » 8年前

baby2478nishi さんが書きました:そもそも、elseはif,else ifに入らないものが自動的にはいるのでelseに条件式をつけること自体が間違っています。
else if(条件)と言う書き方は比較的一般的に使われています。
言語によってはelsif(条件)やelseif(条件)という構文があるぐらいです。RubyやPerlやPHPなどなど。

あっ、そう言う意味じゃないのか失礼しました。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

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