Gå til innhold

Array,nybegynner på c


Anbefalte innlegg

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 av Biomec
Lenke til kommentar
Videoannonse
Annonse

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.

  • Liker 1
Lenke til kommentar
' 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

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
  • 4 uker senere...

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...