Fishboone Skrevet 19. oktober 2010 Del Skrevet 19. oktober 2010 (endret) Lurer på hvordan man deklarerer en tabell/array i main?. Ikke globalt med #define SIZE skal lagre en rekke med 7 tall ett array, Med maksimums verdi på 34 per tall. programet under fungerer ikke helt. #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int i; int a [7] = {34}; for (i=1; i<=34; i++) { int i; } printf("%d\n", i [a] ); system("PAUSE"); return 0; } Håper noen kan hjelpe Endret 20. oktober 2010 av Biomec Lenke til kommentar
[kami] Skrevet 20. oktober 2010 Del Skrevet 20. oktober 2010 et array deklarerer du på denne måten, uansett hvor i koden #define et_array_size 7 int et_array[et_array_size]; eller int et_array[7]; At maksverdien skal være 34, må behandles av annen logikk enn arrayet. Her tenker jeg du må bruke en if setning ala. if (lest_verdi > 34) { std::cout << "feil verdi"; } noen andre observasjoner til kilden du har lagt ved: for (i=1; i<=34; i++) { int i; } Her går du altså fra 1 tom 34. Hvofor? Er tanken din her at du skal begrense verdiene til 34 på et vis? Om tanken din er å gå gjennom hele arrayet ditt, så må du huske at et arrayet ditt starter på index 0 og går til 7. altså for (int i = 0; i < 7; i++) printf("%d\n", i [a] ); Du har ikke definert i som et array. Dette vil ikke fungere. printf("%d", a[0]); // vil skrive ut verdien på index 0 printf("%d", a[1]); // på index 1.. printf("%d", a[2]); // index 2 .. osv Dette kan du generalisere ved å bytte ut tallet 0 med en tellervariabel. printf("%d", a[teller_variabel]); // vil skrive ut verdien på index til tellervariabelen. Håper informasjonen gir deg nok til at du klarer å skrive et forsøk til der du forhåpentligvis har fått til mer. Er det mer du lurer på er det bare å spørre. 1 Lenke til kommentar
zotbar1234 Skrevet 20. oktober 2010 Del Skrevet 20. oktober 2010 ' date='20. oktober 2010 - 11:30' timestamp='1287567011' post='16359896'] printf("%d\n", i [a] ); Du har ikke definert i som et array. Dette vil ikke fungere. Hvis a er et array og i er en int, så vil det det: $ cat comm.c int main() { int a[] = {1, 2, 3}; int i = 0; return i[a]; } $ clang comm.c $ Lenke til kommentar
Zerd Skrevet 20. oktober 2010 Del Skrevet 20. oktober 2010 i[a] vil fungere pga i[a] == *(i+a) == *(a+i) == a[i] Men det er sterkt anbefalt å ikke bruke dette "knepet" fordi det forvirrer mer enn det hjelper. Lenke til kommentar
[kami] Skrevet 20. oktober 2010 Del Skrevet 20. oktober 2010 i[a] vil fungere pga i[a] == *(i+a) == *(a+i) == a[i] Men det er sterkt anbefalt å ikke bruke dette "knepet" fordi det forvirrer mer enn det hjelper. shit, det visste jeg ikke. I stand corrected Men er enig i at den syntaksen er utrolig forvirrende. Lenke til kommentar
Thitorkin Skrevet 16. november 2010 Del Skrevet 16. november 2010 system("PAUSE"); CRY FEST :cry: Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå