ページ 11

C言語で

Posted: 2015年9月30日(水) 21:18
by けん
#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行目に;をつけろといわれ実行できないのですが何故でしょうか?;はつけているのに

Re: C言語で

Posted: 2015年9月30日(水) 21:45
by softya(ソフト屋)
else(x%3 == 2)と言う書き方はC言語にはないですね。
else if(x%3 == 2)だと思います。
コンパイル検証していないので、他にも有ったらすいません。

Re: C言語で

Posted: 2015年9月30日(水) 22:39
by Dixq (管理人)
xが正の数であるとすると
if(x%2 == 0)

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

Re: C言語で

Posted: 2015年9月30日(水) 23:02
by baby2478nishi
そもそも、elseはif,else ifに入らないものが自動的にはいるのでelseに条件式をつけること自体が間違っています。

Re: C言語で

Posted: 2015年9月30日(水) 23:25
by box
けん さんが書きました:

コード:

    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です。
とかいう風に書くのがおそらく正しいでしょう。

Re: C言語で

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

あっ、そう言う意味じゃないのか失礼しました。