Array in andere Prozedur übernehmen
-
Hallo Community ,
wenn ich einen array in einer andern prozedur ausgeben will dann kommt eine fehlermeldung..
hier eine abgespeckte version meines codes.
#include <stdio.h> void ausgeben(int i, int[] zahlen) { int j; for( j = 0; j < i-1;j++) { printf("%i",zahlen[j]); } } int main() { //Inhalt der Arrays und i werden initalisiert.... ausgeben(i,zahlen[]); System("Pause"); return 0; }
es kommt die fehlermeldung
syntax error before "zahlen" <
wo liegt der fehler?
MfG Zahlenboy
-
int[] zahlen ist java-style. in C musst du int zahlen[] schreiben, ausserdem kannst du die klammern bei der übergabe des arrays weglassen.
-
das i-1 sieht mir auch nach einem Fehler aus.
Soll wirklich das letzte element des Array nicht initialisiert werden?Edit:
ich meinte natürlich ausgegeben.
-
auch wenn ich int zahlen[] schreibe kommt eine fehlermeldung
kann ich das nicht iwie mit pointern machen ? wenn ja , wie ?
mfg
-
lass mal die [] bei ausgeben(i,zahlen[]); weg
-
kann ich das nicht iwie mit pointern machen ? wenn ja , wie ?
#include <stdio.h> void ausgabe(int *p, int laenge) { int i; for(i = 0; i < laenge; i++) { printf("%d ",*p++); } printf("\n"); } int main(void) { int x[] = { 2,4,6,8,10 }; int len = sizeof(x) / sizeof(*x); ausgabe(x,len); return 0; }
-
Ravendark schrieb:
kann ich das nicht iwie mit pointern machen ? wenn ja , wie ?
#include <stdio.h> void ausgabe(int *p, int laenge) { int i; for(i = 0; i < laenge; i++) { printf("%d ",*p++); } printf("\n"); } int main(void) { int x[] = { 2,4,6,8,10 }; int len = sizeof(x) / sizeof(*x); ausgabe(x,len); return 0; }
ich muss die aufgabe etwas verändern..
es sollen pro zeilen 7 werte ausgegebenalso
printf("%i",*p);
printf("%i",*p+1);
.....
printf("%i",*p+6);als ausgabe kommen leider keine zahlen sondern nur
10107269324810737418241
10107269324810737418241
10107269324810737418241
10107269324810737418241.....
was mache ich falsch ?
-
Zahlenboy schrieb:
ich muss die aufgabe etwas verändern..
es sollen pro zeilen 7 werte ausgegebenfüg in die schleife, nach dem printf, die zeilen ein:
if ((i+1)%7 == 0) printf ("\n");
Zahlenboy schrieb:
als ausgabe kommen leider keine zahlen sondern nur
10107269324810737418241
10107269324810737418241
10107269324810737418241
10107269324810737418241das sind doch zahlen, auch wenn man sie nicht aussprechen kann.
-
das sind aber die falschen zahlen
normal kommt zuerst -10 damm 20 und dann -30
-
Zahlenboy schrieb:
das sind aber die falschen zahlen
an ravendarks code scheints aber nicht zu liegen, der sieht gut aus.