Feld mit zufälligen double zahlen befüllen
-
Hallo,
ich habe folgende aufgabenstellung:
Gegeben ist ein zweidimensionales Feld der Groesse n*n (2<=n<=6). Es ist ein Programm zu erstellen, das:
In einer Funktion eingabe() n einliest und die einzelnen Feldelemente mit double Zufallszahlen zwischen 30.00 und 299.99 beschreibt. n ist dabei als Rückgabewert zurückzuliefern. Gib das Feld anschliesend in einer Funktion ausgabe() aus......dazu habe ich folgenden Code geschrieben:
#include <stdio.h> #include <stdlib.h> #include <time.h> #define MAX 6 int eingabe(int feld[][MAX]); void ausgabe(int feld[][MAX],size_t dim); int main() { int dim; double feld[MAX][MAX]; dim=eingabe(feld); ausgabe(feld,dim); return 0; } int eingabe(int feld[][MAX]) { int dim=0; while(dim<2||dim>6) { printf("Geben sie die Anzahl der Feldelemente >=2 und <=6 ein\n"); scanf("%d",&dim); } srand(time(NULL)); int i,x; for(i=0; i<dim; i++) { for(x=0; x<dim; x++) { int randZ=(rand()%27000)+3000; feld[i][x]=randZ/100.0; } } return dim; } void ausgabe(int feld[][MAX],size_t dim) { int x,y; for(x=0; x<dim; x++) { printf("\n"); for(y=0; y<dim; y++) { printf("%5.2f",feld[x][y]); } } }
Und obwohl das eigentlich nicht so schwer sein sollte wird für jedes Feldelement nur 0.00 ausgegebn und ich habe keine Ahnung wieso:-(
Was mache ich falsch?Danke, Grüße Fleckdalm
Edit: die Code tags scheinen aus irgendeinem Grund nicht zu funktionieren ich weiß nur nicht wieso...
Edit2: jetzt funktionieren sie!
-
Du kannst es ja editieren: das Zeichen zum schließen des Tags ist nicht / (slash) sondern \ (Backslash)
Du kannst auch den Code markieren und auf den C/C++ Button unter denklicken.
Und nimm cpp statt code. Dann wird es schön bunt.
Dann kann man sich den Code auch mal ansehen.
-
So die Tags haben jetzt funktioniert;-)
-
Du solltest dein Feld als float oder double definieren (und nicht als int).
Auch in den Funktionen!
-
Oh Danke jetzt funktioniert es!
Das hatte ich ganz vergessen habe bis jetzt eigentlich immer nur int felder benutzt und deshalb aus versehen in den Funktionen int statt double geschrieben;-)