Ich bin neu in der Codierung, also entschuldige ich mich, wenn dies eine dumme Frage ist. Ich schreibe Werte in ein Array, so dass die Position in dem Array dem Wert entspricht, so dass die erste Position in dem Array 1 ist, die zweite Position in dem Array 2 ist, die n-te Position in dem Array einen Wert von n hat. Dieser Code funktioniert, bis Sie Eingabe 8.Array Länge in C
#include <stdio.h>
int a = 0, b = 0;
int main(void){
int die[b];
printf("Input how many sides your die has \n");
scanf("%i", &b);
for(a = 1; a <= b; a++){
die[a] = a;
}
for(a = 1; a <= b; a++){
printf("%i ", die[a]);
}
}
jedoch dieser Code funktioniert für jeden beliebigen Wert eingegeben ....
#include <stdio.h>
int a = 0,b = 0;
int main(void){
printf("Input how many sides your die has \n");
scanf("%i", &b);
int die[b];
for(a = 1; a <= b; a++){
die[a] = a;
}
for(a = 1; a <= b; a++){
printf("%i ", die[a]);
}
}
Meine Frage ist, warum die Position des Scanf nicht ändern, und die Deklaration des Arrays ändern die Art, wie der Code so viel funktioniert?
Arrays in C sind * zero-indexed * (zB beginnen sie bei '0'), also schreiben Sie vom zweiten Element' 1' nach * 1-nach dem Ende Ihres Arrays * mit 'for (a = 1; a <= b; a ++); sterben [a] = a'. Sagen Sie, wenn der Benutzer "6" eingibt, sind Ihre gültigen Elemente "0-5". In Ihrem Fall müssten Sie Ihren Index anpassen (zB 'für (a = 0; a