素人なのでどこがエラーなのかよく判らないんです。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ヒロ

素人なのでどこがエラーなのかよく判らないんです。

#1

投稿記事 by ヒロ » 15年前

下記のプログラムはただ単に
関数【メソッド】の呼び出し、またはswitch文を書いたのですが
関数の呼び出し、または定義が間違っているようなのですが、よく判りません。
間違っているところを教えていただけると大変うれしいです。
よろしくお願いします。


#include <stdio.h>
int nyuuryoku(void);


int x,y;
int main(void)
{
int x,y,a,b;
printf(" 計算メニュー\n");
printf("-------------------------\n");
printf(" 1. X + Y\n");
printf(" 2. X - Y\n");
printf(" 3. X * Y\n");
printf(" 4. X / Y\n");
printf(" 5. X % Y\n");
printf(" 6. 終了\n");
printf("-------------------------\n");
printf(" No.= ");
scanf("%d",&a);

switch(a)
{
case 1: nyuuryoku();
printf("X + Y = %d"x+y);
break;

case 2: nyuuryoku();
printf("X - Y = %d"x-y);
break;
case 3: nyuuryoku();
printf("X * Y = %d"x*y);
break;
case 4: nyuuryoku();
printf("X / Y = %d"x/y);
break;
case 5: nyuuryoku();
printf("X % Y = %d"x%y);
break;
case 6: printf("終了!");
break;

default: printf("入力ミス");
}



return 0;

}

int nyuuryoku()
{
printf("\nX= ");
scanf("%d",&x);
printf("\nY= ");
scanf("%d",&y);
return (x,y);
}

へろりくしょん

Re:素人なのでどこがエラーなのかよく判らないんです。

#2

投稿記事 by へろりくしょん » 15年前

switch() 文内の printf() の第一引数と第二引数の間にカンマがありません。
nyuuryoku() 関数の戻り値は常にyを返します。 これは意図的なものですか?
nyuuryoku() 関数内で使われる変数xと変数yはグローバル変数ですが、main() 関数内で使われている変数xと変数yはローカル変数です。
main() 関数内で使われる変数xと変数yが初期化されていません。
main() 関数内で宣言された変数bは使われていません。

ざらっと見たかんじこれぐらいでしょうか。

shuto

Re:素人なのでどこがエラーなのかよく判らないんです。

#3

投稿記事 by shuto » 15年前

ぱっと見では int nyuuryoku() の戻り値 return (x,y) はマズイですね。
Cではその書き方しても戻り値は1つですのでヒロさんが意図した動作はしないでしょう。

グローバルで宣言した変数の振る舞いを誤解しているような気がします。


あと、せっかく規約に
コンパイルエラーの質問時は必ず最低限のエラーメッセージも書きましょう。
って赤字で書いてあるんですから、エラーメッセージを書くべきです。
エラーメッセージを見れば、コードを読まなくてもミスが分かったりしますよ。

閉鎖

“C言語何でも質問掲示板” へ戻る