[C] Array Auswahl und Wert Zuweisung

DasKlub

Mitglied
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:
#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;
}
 

Flown

Administrator
Mitarbeiter
Aha deins sieht fast richtig aus:

Code:
#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;
}
 

Dompteur

Top Contributor
...

Code:
#include <stdio.h>

int main() {

int i;
int iArray[20];

printf("Bitte iArray(1-20) angeben \n");
[COLOR="#FF0000"]scanf("%d",&i-1);[/COLOR]
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;
}

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:
...
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 ;-)
 

Ähnliche Java Themen

Neue Themen


Oben