# [C] Array Auswahl und Wert Zuweisung



## DasKlub (13. Jan 2015)

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.


```
#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 (13. Jan 2015)

DasKlub hat gesagt.:


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



Was willst du machen?


----------



## DasKlub (13. Jan 2015)

Flown hat gesagt.:


> Was willst du machen?



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


----------



## Flown (13. Jan 2015)

Aha deins sieht fast richtig aus:


```
#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 (28. Jan 2015)

DasKlub hat gesagt.:


> ...
> 
> 
> ```
> ...



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.

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


----------

