2D-Array Zugriff
-
Hallo,
2 Fragen:
1. Wie gehts schöner(dass es schöner geht bezweifele ich erst garnicht XD)
2. Wieso gibt z.B 5|5 nur Schrott aus - es ist doch ein 5x5 Array...#include <stdio.h> #include <string.h> int main() { int strAr[5][5],n,i,X,Y; for(n=0;n<26;n++) { if(n<6){for(i=0;i<5;i++){strAr[i][1] = i;}} if(n>=6 && n<11){for(i=0;i<5;i++){strAr[i][2] = i;}} if(n>=11 && n<16){for(i=0;i<5;i++){strAr[i][3] = i;}} if(n>=16 && n<21){for(i=0;i<5;i++){strAr[i][4] = i;}} if(n>=26 && n<26){for(i=0;i<5;i++){strAr[i][5] = i;}} } do { printf("\n\nENTER X AND Y COORDINATES\n\n"); scanf("%d",&X); scanf("%d",&Y); printf("X IS:%d\nY IS:%d\n\n",X,Y); printf("%d",strAr[X][Y]); } while(X != 9); return 0; }
Grüße,
KeinPlan
-
Sagst du uns denn, was das Programm machen soll?
Wenn du ein Array
int arr[5];
hast, dann laufen die Indizes von 0 bis 4, nicht von 1 bis 5. Selbiges gilt fuer 2D Arrays.
-
Array Indices beginnen mit 0
-
Ahhh, dank euch - stimmt vergessen xd.
Naja das array wird hier pro zeile mit den zahlen 1,2,3,4,(5) gefüllt und man kann anschließend auf die einzelnen elemente über die koordinaten zugreifen.
ist momentan nur ne fingerübung.
-
das array sollte, wenn richtig verstanden, so aussehen:
***0 1 2 3 40**0 1 2 3 4
1**0 1 2 3 4
2**0 1 2 3 4
3**0 1 2 3 4
4**0 1 2 3 4
(schhhhhöne formatierung)
-
Meinst du so?
int main(void) { int i, j; int arr[5][5]; for ( i = 0; i < 5; ++i ) for ( j = 0; j < 5; ++j ) arr[i][j] = j; // Ausgabe for ( i = 0; i < 5; ++i ) { for ( j = 0; j < 5; ++j ) printf("%d ", arr[i][j]); printf("\n"); } }
-
Ahhhh ja das dürfte es sein - ich hab diese verschachtelte for-schleife nicht hinbekommen.
thx
p.s.
bei n-dim arrays würde ich dann ja "n" for-schleifen verschachteln, oder geht das iwie kürzer?