度々忙しい中失礼します。
C言語超初心者のものです。else文での表示について質問があります。
プログラミング内容
(1)Enter first integer: 17 [好きな数値選択]
(2)Enter operator:(*/+-%) [好きな演算子選択]
(3)Enter second integer:5 [好きな数値選択]
というように数字・標準演算子・数字の順でキーボードから入力し、
(4)17 / 5 = 3
という回答を求めるものです。また、
(5)17 / 0
”0”をキーボードから入力した時には”Can not divide by 0”という表記をDOS画面?上に表示させたいと思っているのですが、0を入力した後、enterキーを押すと、DOS画面?がフリーズして、「Send Error Report」または「Don't Send」の別表示が出てきてしまいます。
(3)Enter second integer:0以外の値 時にはプログラミングは正常に作用するので、else文に問題があるのは分かっているのですが、どこに問題があるのかが分かりません(カッコ内はnum2=0でもnum2==0でも不可でした)。もしその問題のありかが分かる方がいらっしゃいましたらアドバイスお願いします。
以下がそのプログラミングです。
int main()
{
int num1, num2, num4, num5, num6;
char chr;
printf("Enter the first integer: ");
scanf("%d",&num1);
scanf("%c",&num5);
printf("Enter an operator (* / + - %%): ");
scanf("%c",&chr);
scanf("%c",&num6);
printf("Enter the second integer: ");
scanf("%d",&num2);
if(chr == '/')
{num4 = num1 / num2;
printf("%d / %d = %d\n", num1, num2, num4);
}
else(num2=0) ;
{printf("Can not perform (divide) by 0\n");}
return 0;
}
また参考になるURLなどありましたら、それもご紹介願います。
大変皆さんお忙しいとは思いますが、出来たらお願いします。
査閲ありがとうございます。
No.2ベストアンサー
- 回答日時:
#1の方の言うとおり、もう少し文法を見直した方がいいでしょう。
でも、やりたいことは判ったので、if文を変更しましょう。
今のまま文法に合わせても、chrが"/"の時は必ず計算してしまいます。 ←ここが重要!!
なので、
if(chr == '/'){
if(num2==0){
printf("Can not perform (divide) by 0\n");
}else{
num4 = num1 / num2;
printf("%d / %d = %d\n", num1, num2, num4);
}
}
のように、chrが"/"でnum2が"0"の時に「Can not perform (divide) by 0」と表示するように変えてみました。または同時に判定させて
if(chr == '/' && num2==0){
printf("Can not perform (divide) by 0\n");
}else{
num4 = num1 / num2;
printf("%d / %d = %d\n", num1, num2, num4);
}
のように変更しましょう。
No.3
- 回答日時:
とりあえず, 「どのように処理をしていけばいいのか」が理解できていないような気がします. その状態では, いかなる言語を使っても同じように困るでしょう.
ちなみに
else (num2 = 0);
というのは「文法的には」おかしくないです>#1. else のあとに「冗長なかっこを持つ式文」があるだけだから.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- C言語・C++・C# C言語でif文が予想と違う動きをする件について7 4 2023/03/20 00:26
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# C言語(構造体) 3 2022/07/05 20:08
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- C言語・C++・C# C pointer? or... 2 2022/03/29 00:47
- UNIX・Linux 次の要件を満たすにはどのように修正したらよろしいでしょうか 1 2022/11/24 20:57
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
構文エラー";"が型の前にあり...
-
c言語プログラミングで1から100...
-
for文の中にswitch文はいれられ...
-
C言語の二分法のプログラムにつ...
-
while文について、c言語...
-
C言語プログラムが理解できなくて…
-
初心者です。for文、if文を使っ...
-
C言語 数字以外を入力させない...
-
1からnまでの和を求めるプログ...
-
配列を使って魔方陣
-
プログラムの勉強でわからない...
-
xのy乗を求める問題で…(ただし...
-
c言語の問題
-
switch文をif文に変換
-
C言語でfor文を用いたプログラ...
-
c言語のwhile文を使った計算で...
-
全角文字の判定
-
分散を求めるプログラム
-
c言語のプログラムで
-
VHDLで、case文とwhen文のどち...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
#if 1 #elseの意味について
-
構文エラー";"が型の前にあり...
-
for文の中にswitch文はいれられ...
-
配列を関数に渡す方法
-
計算結果がlong型以上になる場...
-
プログラミングで二番目に大き...
-
scanf関数を用いての加減乗除%...
-
getcの改行判定
-
C言語で電卓を作成する。
-
配列を使って魔方陣
-
C言語で勉強中(max,min)の出し方
-
C言語階乗の総和を求める
-
VHDLで、case文とwhen文のどち...
-
C言語でのトランプシャッフルに...
-
プログラム
-
while文について、c言語...
-
OpenCVを用いて任意の時間で静...
-
scanfが実行されません
-
C言語 数字以外を入力させない...
-
C言語です
おすすめ情報