Pointer Hilfe
-
Hi, ich habe die funktion koeff_eingabe und möchte die Variablen abcd in die main Funktion übergeben wie mache ich das? Pointer sind immernoch ein Rätsel für mich
koeff_eingabe() { double koeff[4], a, b, c, d; int t; for(t = 3; t >= 0; t--) { printf("Koeffizienten für x^%d eingeben:", t); scanf("%lf", &koeff[t]); ; } a = koeff[3]; b = koeff[2]; c = koeff[1]; d = koeff[0]; }
Edit by c.rackwitz: Code will eingerueckt werden, um lesbar zu sein.
Danke aber fuer die cpp-Tags, die werden so selten benutzt.
-
Eine Möglichkeit wäre z.B.:
void koeff_eingabe(double *a, double *b, double *c, double *d){ double koeff[4]; ... *a=koeff[3]; *b=koeff[2]; // usw.
Ich würde aber eher mit dem Array weiterarbeiten und nicht alles a, b, c und d zuweisen.
-
Und wie lese ich das in der Funktion aus?
Einfach koeff_eingabe()?
Ich möchte mit den Variablen noch etwas berechnen
-
Etwas ausfuehrlicher:
int main(void) { double a; double b; double c; double d; double erg; koeff_eingabe(&a, &b, &c, &d); //Nun sind an den Stellen a, b, c und d deine Koeffizienten gespeichert erg = a * b; //z. B. Multipliziere Koeffizient a mit Koeffizient b ... return 0; } void koeff_eingabe(double *a, double *b, double *c, double *d){ double koeff[4]; //Hier die Koeffizienten in das array einlesen ... //Dann an die Adressen a, b, c und d die Werte schreiben *a=koeff[3]; *b=koeff[2]; *c=koeff[1]; *d=koeff[0]; }
-
Habt es hinbekommen danke
Noch eine Frage wie mach ich das ganze mit einem Array:
int q,w; for ( w=0; w<xWidth; ++w ) { for ( q=0; q<yWidth; ++q ) { bild[w][q] = ' '; } }
-
Ich weiss jetzt nicht so recht, was du willst!
Hast du mehrere Gleichungen und möchtest deren
Koeffizienten in ein 2D-Array einlesen?int koeff[3][2],i,j; for(i=0; i<3; i++) for(j=0; j<2; j++) koeff[i][j]=' ';
Werd doch mal etwas konkreter!
-
Unser Prof. mag es nicht wenn zuviel in der main Funktion steht deswegen
würde ich den Code gerne in einer Funktion unterbringen.
Das hier erstellt ein Koordinatensystemint q,w; for ( w=0; w<xWidth; ++w ) { for ( q=0; q<yWidth; ++q ) { bild[w][q] = ' '; } }
und in der main funktion möchte ich dann Werte reinschreiben
int fufu,x,u,fx,fx1,fx2; for(x=0;x<yWidth;x++) { fx=(a*x*x*x+b*x*x+c*x+d)+0.5; fx1=((3*a)*x*x+(2*b)*x+c)+0.5; fx2=((6*a)*x+(2*b))+0.5; if(fx>=0&&fx<xWidth) bild[fx][x]='*'; if(fx1>=0&&fx1<xWidth) bild[fx1][x]='+'; if(fx2>=0&&fx2<xWidth) bild[fx2][x]='*'; }
-
Die einfachste Version dürfte es wohl sein, 'bild[][]' als globale Variable anzulegen, dann kannst du sie von jeder Funktion aus erreichen:
int bild[xWidth][yWidth]; void init_bild(); { //hier deine Initialisierungsschleife } int main() { init_bild(); //... }
Sicherer und wiederverwertbarer ist vermutlich das hier:
void init_bild(int b[xWidth][yWidth]) { memset(b,xWidth*yWidth,' '); } int main() { int bild[xWidth][yWidth]; init_bild(b); //... }
-
Habs hinbekommen vielen dank