以下のプログラムをif文に書き換えるとどうなるでしょうか?
if文と論理演算子を使って短く書きかえられるらしいのですが。
#include <stdio.h>
main()
{
int no;
scanf("%d",&no);
switch (no){
case 1: puts("1番です。\n"); break;
case 2: puts("2番です。\n"); break;
case 3: puts("3番です。\n"); break;
case 4: puts("4番です。\n"); break;
case 5: puts("5番です。\n"); break;
case 6: puts("6番です。\n"); break;
default: puts("そんな学年はありません。"); break;
}
}
No.1ベストアンサー
- 回答日時:
noが1以上6以下なら"no番です。
"と出力し、それ以外なら"そんな学年はありません。"と出力するのなら
こんな感じで良いのでは。
(全角スペースが入っているのでこのままでは動きません)
--------------------
#include <stdio.h>
int main()
{
int no;
scanf("%d",&no);
if(1<=no && no<=6){
printf("%d年です。\n", no); /*年が適当かと思ったので年にしました*/
}
else{
printf("そんな学年はありません。\n");
}
return 0;
}
申し訳ありません。
お礼が遅くなりました。
質問時に学習していたレベルでは1番適当な解答で
大変助かりました。
ありがとうございました。
No.3
- 回答日時:
一応作ってみました。
#include <stdio.h>
int main(void)
{
int no;
scanf("%d",&no);
if (1 <= no && no <= 6)
printf("%s番です。\n", (char*[]){ "1", "2", "3", "4", "5", "6" }[no-1]);
else
puts("そんな学年はありません。");
return 0;
}
やはり、全角数字をどう扱うかがポイントですね。
お礼が遅くなり申し訳ありません。
これは文字列を使ったプログラムですね。
とても参考になりました。
ポイントですがNo.1の方が当方の求めていた回答で
あった為、申し訳ないですが以降は先着とさせて頂きます。
また機会がありましたらよろしくお願い致します。
ありがとうございました。
No.2
- 回答日時:
//かなり良くないが
#include <stdio.h>
main(){
int no;
char *p="0";
scanf("%d",&no);
if(1 <= no && no <=6){
*(p+1) += no;
fputs(p, stdout);
puts("番です。\n");
} else {
puts("そんな学年はありません。");
}
return 0;
}
お礼が遅くなり申し訳ありませんでした。
こういうプログラムもあるのですね。
今の私のレベルでは難しいです。
良くない例という事で、こういうプログラムもあるの
だという参考にさせて頂きます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- JavaScript jsで、switch文で書かれた分をif文にできませんか。 1 2022/07/28 15:10
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- その他(プログラミング・Web制作) powershell で書いたプログラムでcd が動かない 5 2023/04/08 14:47
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- C言語・C++・C# C++のcase文の書き方 4 2023/02/24 20:50
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語階乗の総和を求める
-
for文の中にswitch文はいれられ...
-
#if 1 #elseの意味について
-
C言語 数字以外を入力させない...
-
c言語for文
-
C言語 重複しない4ケタの乱数...
-
raspberrypiでロータリエンコーダ
-
初心者です。for文、if文を使っ...
-
プログラミングで二番目に大き...
-
while文について、c言語...
-
C言語の二分法のプログラムにつ...
-
構文エラー";"が型の前にあり...
-
C言語プログラムが理解できなくて…
-
getcの改行判定
-
計算結果がlong型以上になる場...
-
switch文をif文に変換
-
配列を関数に渡す方法
-
C言語のプログラミング (基礎...
-
直角三角形を表示するプログラム
-
C言語についてですfor ifをつか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
構文エラー";"が型の前にあり...
-
for文の中にswitch文はいれられ...
-
#if 1 #elseの意味について
-
プログラミングで二番目に大き...
-
getcの改行判定
-
C言語プログラムが理解できなくて…
-
C言語 数字以外を入力させない...
-
配列を関数に渡す方法
-
配列を使って魔方陣
-
初心者です。for文、if文を使っ...
-
c言語for文
-
c言語で平均をだす
-
while文について、c言語...
-
scanf関数を用いての加減乗除%...
-
行列をべき乗させるプログラム
-
c言語プログラミングで1から100...
-
C言語階乗の総和を求める
-
scanfが実行されません
-
階乗のプログラム!!
-
C言語の二分法のプログラムにつ...
おすすめ情報