Ich komme zu C nach langer Zeit nicht zu verwenden. Ich habe gerade geübt und bin auf dieses Problem gestoßen. Ich versuche zu:Teilen Code in Funktionen in C
- nehmen 2 Variablen von scanf()
- die beiden Eingänge multiplizieren
- dann gibt das Problem
Ich habe versucht, die verschiedenen Teile in Funktionen aufgeteilt, aber das Programm gibt verrückte hohe Zahlen (denke, dass sie die Speicheradressen sind). Es liegt wahrscheinlich an meinem Mangel an Missverständnissen.
#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; Sie sollten über Zeiger lesen. – haccks
danke das ist wirklich hilfreich. nur ein wenig verwirrt. Im neuen Code sagt man also effektiv: * i_x = & x; (was ich verstehe) aber ich verstehe scanf nicht ("% d", i_x); Sicher wollen Sie scanf ("% d", * i_x) sagen, weil * i_x auf den Wert von x zeigt. Entschuldigung, kannst du bitte etwas weiter expandieren? –