Avatar billede dragnor Juniormester
28. november 2003 - 12:26 Der er 4 kommentarer og
1 løsning

hjælp til matrix

Hej igen, jeg har endnu et spørgsmål:

int a[3][3] = {(1,2,3),(4,5,6),(7,8,9)};

Hvordan udskriver jeg f.eks. "5"

i java skrev man jo bare a[2][2]

men jeg får en underlig fejl når jeg skriver:

printf("%d",a[2][2]);

Hvorfor?
Avatar billede dragnor Juniormester
28. november 2003 - 12:30 #1
Er der også nogen som har et godt link til en nybegynder som mig, så jeg rigtig kan lære C nu hvor jeg godt kan finde ud af java, jeg skal bare lige lære forskellen...
Avatar billede jpk Nybegynder
28. november 2003 - 12:32 #2
Du skal bruge

int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
Avatar billede arne_v Ekspert
28. november 2003 - 12:33 #3
5 er vel a[1][1] ?

Hvilken fejl får du ?
Avatar billede jpk Nybegynder
28. november 2003 - 12:34 #4
og jo, du kan sagtens bruge a[2][2]
Hvilken fejl får du..?

du skal iøvrigt burge a[1][1] for at få 5-tallet, arrayindexet er jo 0-baseret!
Avatar billede segmose Nybegynder
28. november 2003 - 12:51 #5
Nu har de andre svaret på hvad du burde gøre, jeg vil så forsøge at svare på hvorfor du får noget mærkeligt.

Din initialiseringslist

int a[3][3] = {(1,2,3),(4,5,6),(7,8,9)};

hvis du sammenligner med jpk's:

int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}};

kan du se at du bruger () inders og han bruger {} i C og C++ betyder () regn dette samlet (som i matematik) og resultatet af (1,2,3) er 3, da () så returnerer resultatet af den sidste udregning i parantesen, din initlialiseringsliste svare derfor til:
int a[3][3] = {{3, 6, 9}};

hvilket efterlader de 2 sidste elementer udefineret og heraf de mærkelige tal.

#include <stdio.h>

int a[3][3] = {(1,2,3),(4,5,6),(7,8,9)};

int main() {
  for (int x = 0; x < 3; x++) {
    for (int y = 0; y < 3; y++)
      printf("%d ", a[x][y]);
    printf("\n");
  }
  return 0;
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester