私はC言語に戻っています。私はちょうど練習していて、この問題に遭遇しました。私がしようとしています:コードをCの関数に分割する
- (scanf関数から2つの変数を取る)
- 二つの入力
- を乗算して出力私は関数に異なる部分を分割しようとしていた問題
が、プログラムは狂った高い数字になります(代わりにメモリアドレスだと思います)。おそらく私の誤解がないためです。
#include <stdio.h>
int input();
int mult (int x, int y);
int main()
{
int x;
int y;
x, y = input();
printf("In Main: x, y: %d, %d\n", (x, y));
z = mult(x,y);
printf("The product of your two numbers is %d\n", z);
getchar();
getchar();
}
int input()
{
int i_x;
int i_y;
printf("Please input two numbers to be multiplied: ");
scanf("%d", &i_x);
scanf("%d", &i_y);
printf("In Input: x, y: %d, %d\n", i_x, i_y);
return i_x, i_y;
}
int mult (int x, int y)
{
int a;
int b;
int c;
a = x;
b = y;
printf("In Multi: x, y: %d, %d\n", a, b);
c = a*b;
return c;
}
を@ElliottCooper。あなたはポインタについて読むべきです。 – haccks
本当に助けていただきありがとうございます。ほんの少し混乱しています。新しいコードでは、効果的に* i_x =&x;私は理解していますが、私はscanf( "%d"、i_x)を理解できません。 * i_xがxの値を指しているので、あなたはscanf( "%d"、* i_x)と言っています。すみませんが少し拡大していただけますか? –