こんばんわ
C言語初心者です。
初歩的な質問で申し訳ないですが、どうしても解決できなくて質問させていただきます。
私は学生のためのCという本を使ってC言語の勉強をしているのですが、
この本の通りにプログラムを書いたのに、エラーが出ます。
コンパイルはMicrosoft Visual C++ 2008 Express Editionを使っています。
#include <stdio.h>
main()
{
float x, y, z;
printf("z=x*(x+y)/{y*(x-y)}計算します。\n");
printf("xとyを入力してください。----->");
scanf("%f %f, &x, &y");
z =x*(x+y)/(y*(x-y));
printf("z=%7.3f\n", z);
return(0);
}
エラーは
warning C4700: 初期化されていないローカル変数 'x' が使用されます
warbubg C4700: 初期化されていないローカル変数 'y' が使用されます
とでています。
どこがおかしいのでしょうか・・?
ローカル変数の初期化について
Re:ローカル変数の初期化について
ダブルコーテーションの位置がおかしいです。 誤:scanf("%f %f, &x, &y"); 正:scanf("%f %f", &x, &y);後、ゼロ割対策がされていないので、
「1 1」や「0 0」と入力するとバグるのでは無いかと思います。
Re:ローカル変数の初期化について
> エラーは
> warning C4700: 初期化されていないローカル変数 'x' が使用されます
> warbubg C4700: 初期化されていないローカル変数 'y' が使用されます
> とでています。
エラーではなくて警告です。
エラーの場合は、こんなもんコンパイルできるか~、という感じですが、
警告の場合は、コンパイルできることはできるけど、少し怪しくね?という感じです。
scanfが間違っていたので、その次の行の計算をしようとするときに、
xとyは初期化も代入もされていない、ごみデータのままです。
ホントにこんなデータで計算しちゃっていいの?という警告ですね。
コンパイラの声に耳を傾けましょう。
> warning C4700: 初期化されていないローカル変数 'x' が使用されます
> warbubg C4700: 初期化されていないローカル変数 'y' が使用されます
> とでています。
エラーではなくて警告です。
エラーの場合は、こんなもんコンパイルできるか~、という感じですが、
警告の場合は、コンパイルできることはできるけど、少し怪しくね?という感じです。
scanfが間違っていたので、その次の行の計算をしようとするときに、
xとyは初期化も代入もされていない、ごみデータのままです。
ホントにこんなデータで計算しちゃっていいの?という警告ですね。
コンパイラの声に耳を傾けましょう。