scanf文で超初歩的な文章を作りました。エラーが出てどこが間違えているのかはわかるのですが、その理由を言語化できません
scanf文で簡単な文章を作りました。何が誤りでエラーが発生しているのかよくわかりません。
ターミナル上で数字を入力し、その2乗の値を返すだけのプログラムです。
発生している問題・エラーメッセージ
Please enter a integer :
ここに整数(適当に10)を入れます。
返ってくる値はその2乗です。
Please enter a integer : 10 1682559044
...返ってきません。何かがおかしいようです。
該当のソースコード
c
1#include<stdio.h> 2 3int f(int x); 4 5int main(void) 6{ 7 int a, b; 8 b=f(a); 9 10 11 printf("Please enter a integer : "); 12 scanf("%d", &a); 13 printf("%d\n", b); 14 15 return 0; 16} 17 18int f(int x){ 19 int y; 20 y=x*x; 21 return y; 22} 23 24
試したこと
以下のように、整数型変数bを定義せずに用いるとうまく結果が帰ってきます。
c
1#include<stdio.h> 2 3int f(int x); 4 5int main(void) 6{ 7 int a; 8 9 printf("Please enter a integer : "); 10 scanf("%d", &a); 11 printf("%d\n", f(a) ); 12 13 return 0; 14} 15 16int f(int x){ 17 int y; 18 y=x*x; 19 return y; 20} 21 22
int b;
b=f(a);
を書かなければokなんですけど、なぜだか説明できません。
どうぞよろしくお願いいたします。
https://teratail.com/questions/206680 で疑問が解消しなかったのならそう言っていただければ...と思うのですが。全く同根なので。
回答者様
ご指摘ありがとうございます。
thkana様のご指摘通りです。
以前の質問に対する回答をよく吟味しないまま今回の質問をしてしまいました。
回答者様に対する極めて失礼に当たる行為だと自覚しております。
ご迷惑をおかけいたしました。
回答4件
あなたの回答
tips
プレビュー