「キーボードから受け取った整数が偶数か奇数かを表示するプログラムを、switch 文を使って作成する」
という問題で、プログラムを作ってみたのですが、エラーが出ます。
caseの後の%2==0 %2!=0の部分が間違っていると思うのですが、これは何と書けばいいでしょうか?偶数と、奇数の場合の条件の書き方はどうやるのでしょう?
回答お願いします。
#include<stdio.h>
int main(void)
{
int a;
scanf("%d",&a);
switch(a)
{
case %2==0 :
printf("%dは偶数です\n",a);
break;
case %2 != 0
printf("%dは奇数です\n",a);
break;
}
}
No.1ベストアンサー
- 回答日時:
caseの後ろは 整数値などを書きます
この整数値は switchの引数で指定した式を評価した結果になります
偶数か奇数かでしたら
switch( a % 2 ) {
case 1: // 奇数の場合
printf("%dは奇数です\n", a);
break;
case 0: // 偶数の場合
printf("%dは偶数です\n", a);
break;
}
といった具合にします
No.2
- 回答日時:
★アドバイス
・回答者 No.1 さんと同じく『case』の後ろは整数定数(記号定数など)しか記述できません。
・よって、条件式を使う場合は『case』ではなく『if』文を使います。
・『caseの後の%2==0 %2!=0の部分が間違っていると思う』→そう!間違っていますね。
・短いですが『if』文の場合のサンプルを下に記述しておきます。→回答者 No.1 さんのでもOK!
★サンプル
int main( void )
{
int a;
scanf( "%d", &a );
if ( (a % 2) == 0 ){
printf( "%dは偶数です\n", a );
}
else if ( (a % 2) != 0 ){ ←『else』だけでもOK!
printf( "%dは奇数です\n", a );
}
}
補足:
・『case』は整数定数、記号定数のみしか記述できない。→文法上。
・条件式を使うには必ず、『if()』、『else if ()』、『else』を使います。
・最後に『(a % 2) != 0』の部分は『a & 0x1』で『奇数』と判定できますよ。
if ( a & 0x1 ){
printf( "%dは奇数です\n", a );
}
else{
printf( "%dは偶数です\n", a );
}
・以上。おわり。さようなら。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 割られる整数と割る整数を受け取って、商と余りを出力す 3 2022/07/05 10:23
- C言語・C++・C# C言語 3 2022/11/09 13:27
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 malloc関数を使ってください!お願いします! 最 1 2022/07/21 09:28
- C言語・C++・C# 至急お願いします。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分母 3 2022/07/19 17:09
- C言語・C++・C# 至急教えてください! プログラミングの問題です! お願いします! 出力2と全く同じ出力をするように、 2 2022/06/22 23:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
10個出力で改行したいのですが...
-
【C言語教えてください】sin波...
-
c言語でAからZまでを表示する...
-
strcmp
-
printf( " %2d", p * q );
-
1秒で動くインターバルタイマ
-
C言語初心者です。次の問題で質...
-
コマンドラインに出力した文字...
-
再帰処理 変換
-
エラーの意味が…
-
printfの出力内の文字をdefine...
-
テキストカーソル位置の取得
-
既約分数の表示プログラム
-
C言語の勉強しています。すみま...
-
三角形の判別
-
C言語での数字の花形表示
-
インクリメント演算子をprintf...
-
printf で二進表示を行いたい。
-
DOSコマンドで、YES,NO条件を加...
-
3つの入力した数値の大小比較...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10個出力で改行したいのですが...
-
既約分数の表示プログラム
-
printf で二進表示を行いたい。
-
8人分のテストの点数を入力し、...
-
printf( " %2d", p * q );
-
strcmp
-
CTRL+Dでループを抜けるには
-
4の倍数を論理演算で表す。。
-
%P と %X の違い
-
【C言語教えてください】sin波...
-
c言語でAからZまでを表示する...
-
cshの文字列操作(0埋め)
-
万年カレンダーのC言語プログラ...
-
コマンドラインに出力した文字...
-
scanfに文字が入力されたときに...
-
コンパイルエラーについて
-
ホームページをC言語で作りたい...
-
改行について 1行に何個かづ...
-
台形の面積を求めるプログラム
-
なぜgccはstdio.hをインクルー...
おすすめ情報