プロが教えるわが家の防犯対策術!

C言語の問題です.switch文を使って,四則演算する課題です.
次のようなソースをかきましたが,上手くいきません.

どこを直すべきでしょうか?

後半のcaseがおかしいのかもしれませんが,気づけません..



//switch文による四則演算

#include <stdio.h>

int main(void)

{
int va;
int vb;
int sw;

printf("最初の数が大きくなるように設定してください.\n");

printf("整数を入力してください:");
scanf("%d ",&va);

printf("整数を入力してください:");
scanf("%d ",&vb);

if (va < vb){
printf("最初の数が大きくなるように設定してください.\n");
printf("整数を入力してください:");
scanf("%d ", &va);
printf("整数を入力してください:");
scanf("%d ", &vb);

}

printf("1…和\n2…差\n3…積\n4…商\n");

printf("数を入力してください:");
scanf("%d", &sw);


switch (sw) {

case 1 : printf("2つの数の和は,%dです.", va + vb); break;//和
case 2 : printf("2つの数の差は,%dです.",va - vb); break;//差
case 3 : printf("2つの数の積は,%dです.",va * vb); break;//積
case 4 : printf("2つの数の商は,%dです.", va / vb); break;//商
default : printf("1~4の数を入力してください.\n"); //break;

}

質問者からの補足コメント

  • ↓ここがおかしいとエラーが出てしまいます.

    switch (sw) {

    case 1 : printf("2つの数の和は,%dです.", va + vb); break;//和
    case 2 : printf("2つの数の差は,%dです.",va - vb); break;//差
    case 3 : printf("2つの数の積は,%dです.",va * vb); break;//積
    case 4 : printf("2つの数の商は,%dです.", va / vb); break;//商
    default : printf("1~4の数を入力してください.\n"); //break;

    }

    vaやvbの()があるのがおかしいと出てしまいます.
    ここに原因がある??

      補足日時:2016/10/22 11:34

A 回答 (5件)

追加:


最後の } がありません。
    • good
    • 0

> case 2 : printf("2つの数の差は,%dです.",va - vb); break;//差


",va - vb) の ,は全角です。 半角の , を使用してください。

> case 3 : printf("2つの数の積は,%dです.",va * vb); break;//積
",va * vb) の ,は全角です。 半角の , を使用してください。
    • good
    • 0

expected ')' before 'va' を「vaやvbの()があるのがおかしい」とするのは「意訳」とは呼ばないと思う>#2.



あと, 「おかしいとエラーが出て」いるところは, もっと限定されてるんじゃないかな. 「何行目」って出てると思うよ.
    • good
    • 0

> vaやvbの()があるのがおかしいと出てしまいます



こういう意訳されると、何のことだかさっぱりわかりません。
正確なメッセージを書いてください。


error: expected ')' before 'va'
とかじゃなかったですか?

エラーメッセージは、エラーにした理由が書いてありますが、エラーの真因が書いてあるわけではありません。
このエラーは 「 va の前に ) が必要」 と言う内容ですが、その原因には
・本当に ) が必要なのに抜けている
・「vaの前」の部分に記述間違いがあって、期待通りに解釈されていない。
の2通りがあります。

おそらく、今回は後者です。
vaの前にある文字をよく見てください。
フォントを変えてみるもの手です。
    • good
    • 0

「うまくいかない」というのは, 具体的にはなにがどう「うまくいかない」んですか?



あ, あと 4つの質問は全く意味不明だから「なにをいっているのかさっぱりわからない」以外の回答はないと思っていいよ.
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!