ここから本文です

c言語 swichについてです。

アバター

ID非公開さん

2019/7/910:48:33

c言語 swichについてです。

プログラムに
case10
printf('A'¥n)
case20
printf('B'¥n) のとき10を入力したときA.Bの数字は何になるか?という問題で Aが2でBが2になるのは何故ですか?

閲覧数:
52
回答数:
5

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

aki********さん

2019/7/911:07:14

そのコードではAとBは文字リテラルで数字なんて出ません。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜4件/4件中

並び替え:回答日時の
新しい順
|古い順

fan********さん

2019/7/1605:29:55

この問題は、問題自体が非実用的な問題なので、解けなくて良いです。
解けなくても気にしないでください。

それよりも、switch文の正しい使い方をしっかりと覚えて、使えるようになってください。

例:

switch(x)
{
case 1:
y = x * 10;
break;

case 2:
y = x * 20;
break;

default:
y = x * 5;
break;
}

printf("%d",y);

xが1,2,3の時で、それぞれ出力結果がどうなるか?
というように考えるようにしてください。

プロフィール画像

カテゴリマスター

mer********さん

2019/7/1003:59:47

意味不明です。

プログラムがおかしいのは大目に見るとしても、

>10を入力したときA.Bの数字は何になるか?

「A,Bの数字」とは?

>Aが2でBが2になる

「2になる」とは?

問題文の内容は何なのか、何をしてどうなったのか、さっぱり伝わりません。

プログラム的にありがちなミスとしては、breakがないのでcase 10:からcase 20:へ突き抜けているのでしょう、ということしか言えません。

kat********さん

2019/7/920:33:37

そもそもプログラムが異常なので、
察することしかできませんが、
break;を書いていないため、
条件に引っかかったcase文の場所から、
switch文のスコープの最後まで
処理が続くからです。

qwe********さん

2019/7/914:09:14

問題を省略せずに全部、間違えずに載せてください。

何をしたいのか、良くわかりません。
printf()では単に文字を表示しているだけで、変数の値なんて参照していない。

さらに、質問のプログラムは case 10が成立すればcase 20も成立する。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる