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 ausgegeben

    also
    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 ausgegeben

    fü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
    10107269324810737418241

    das 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.
    🙂


Anmelden zum Antworten