[C] Array Auswahl und Wert Zuweisung

Dieses Thema [C] Array Auswahl und Wert Zuweisung im Forum "C/C++" wurde erstellt von DasKlub, 13. Jan. 2015.

Thema: [C] Array Auswahl und Wert Zuweisung Hallo Zusammen, Ich stoße mal wieder an meine Grenzen bei dem Versuch Arrays zu verstehen.Momentan habe ich eine...

  1. Hallo Zusammen,

    Ich stoße mal wieder an meine Grenzen bei dem Versuch Arrays zu verstehen.Momentan habe ich eine Blockade vom Stundenlangen
    Lernen und rumprobieren.

    Ich habe es mal in einem kleinen Programm runter gebrochen wo es bei mir scheitert und zwar:

    Soll der User eine Array zwischen 1-20 wählen und dieser einen Wert zuweisen,dann soll eine Liste der 20 Arrays ausgegeben werden.

    in meinem Buch ''Grundkurs C'' von Galileo Computing hat da leider kein brauchbares Beispiel für,sondern nur automatische Zuweisungen in for-Schleifen und bei Google habe ich das selbe Problem,aber vielleicht habe ich nur ein Brett vorm Kopf.

    Code (Text):

    #include <stdio.h>

    int main() {

    int i;
    int iArray[20];

    printf("Bitte iArray(1-20) angeben \n");
    scanf("%d",&i-1);

    printf("Bitte einen Wert eingeben \n");
    scanf("%d",&iArray[i]);

    for(i = 0;i < 20;i++) {

    printf("%d.iArray = %d \n",i+1,iArray[i]);
    }
    return 0;
    }
     
     
  2. Vielleicht hilft dir das Grundlagen Training weiter --> *Klick*
  3. Flown
    Flown Mitarbeiter
    Was willst du machen?
     
  4. Ok Ich versuche E's noch mal zu beschreiben. Also wir haben eine array [20] also 20 variablen in Der array jetzt soll er sich eine davon aussuchen z.b array[5] also variable nr. 5 Und Der einen Wert(z.b=16)zuweisen. Dann wird die array ausgegeben:

    1. = 0
    2. = 0
    3. = 0
    4. = 0
    5. = 16
    6. = 0
    ....
     
  5. Flown
    Flown Mitarbeiter
    Aha deins sieht fast richtig aus:

    Code (Text):
    #include <stdio.h>

    #define ARRAY_SIZE 20

    void clear(int* array, int value) {
        int i;
        for(i = 0; i < ARRAY_SIZE; i++) {
            array[i] = value;
        }
    }

    void print(int* array) {
        int i;
        printf("[");
        for(i = 0; i < ARRAY_SIZE; i++) {
            if(i != 0) {
                printf(", ");
            }
            printf("%d", array[i]);
        }
        printf("]\n");
    }

    int main(void) {
        int i;
        int array[ARRAY_SIZE];
       
        clear(array, 0);
        printf("Position eingeben: \n");
        scanf("%d", &i);
        printf("Wert eingeben: \n");
        scanf("%d", &array[i]);
        print(array);
        return 0;
    }
     
  6. Schau dir bitte einmal die rot markierte Zeile an.
    Ich vermute, dass du da die Usereingabe einlesen und gleich um 1 verringern willst. So geht das allerdings nicht.
    Tausche einfach die rote Zeile durch folgendes Code-Stück aus.
    Code (Text):

    ...
    scanf("%d",&i);
    i--;   // Index für Arrayzugriff anpassen. Erstes Element hat Index = 0.
    ...
     

    Ich weiß, dass ist ein vereinfachter Code-Ausschnitt. Ich echten Code hast du sicher schon geprüft, ob die Eingabe zwischen 1 und 20 liegt ;-)
     
  7. Kostenloses Java-Grundlagen Training im Wert von 39 €
    Schau dir jetzt hier das Tutorial an und starte richtig durch!