Avatar billede mikkelsune Nybegynder
12. juni 2006 - 18:56 Der er 11 kommentarer og
1 løsning

Hjælp til Array

Hejsa, jeg er rimelig ny indefor c++.. Jeg mangler lidt hjælp til et flere dimensionelt array, ligenu kan jeg få udskrevet nummeret "1,4" på skærmen når jeg trykker "1", men hvordan får jeg udskrevet begge variabler på samme tid?

kode:

#include <stdio.h>
#include <stdlib.h>

void skriv_navn(char navn[]);

void main()
{
  int nummer, tid;
  char liste[2][7] =  {  {"track1"},
                        {"1,4"}  };

  printf("\nSkriv nummer mellem 0 og 10: ");
  scanf("%d", &nummer);

  skriv_navn(liste[nummer]);

system("PAUSE");
}
void skriv_navn(char navn[])
{
  printf("navnet er: %s.", navn);

}
Avatar billede arne_v Ekspert
12. juni 2006 - 19:01 #1
og 0 giver "track1"

og kun 0 og 1 er valide numre

hvad mener du med
  hvordan får jeg udskrevet begge variabler på samme tid?
?
Avatar billede mikkelsune Nybegynder
12. juni 2006 - 19:25 #2
Jeg ville gerne have så den skrev både "track1" og "1,4" på samme tast
Avatar billede mikkelsune Nybegynder
12. juni 2006 - 19:28 #3
ud over dette får jeg også en fejl når jeg prøver at includere mere i arrayet f.eks

char liste[2][7] =  {  {"track1", "track2"},
                        {"1,4", "3,4"}  };

hvad skyldes dette?
Avatar billede arne_v Ekspert
12. juni 2006 - 19:28 #4
skriv_navn(liste[0]);
  skriv_navn(liste[1]);

eller ?
Avatar billede arne_v Ekspert
12. juni 2006 - 19:42 #5
char liste[2][2][7] =  {  {"track1", "track2"},
                        {"1,4", "3,4"}  };

vil jeg tro - det er jo et 2D array af string og dermed et 3D array af chars
Avatar billede mikkelsune Nybegynder
12. juni 2006 - 19:57 #6
får lige en fejl, når jeg sætter det ind du skrev:
passing `char (*)[7]' as argument 1 of `skriv_navn(char *)
Avatar billede mikkelsune Nybegynder
12. juni 2006 - 20:01 #7
line 15 btw
Avatar billede arne_v Ekspert
12. juni 2006 - 20:03 #8
skriv_navn(liste[nummer][0]);
skriv_navn(liste[nummer][1]);

vil jeg tro
Avatar billede mikkelsune Nybegynder
12. juni 2006 - 20:12 #9
tror jeg er komme på et sidespor :D... det jeg egntlig ville var noget i stil med at have Track1, track2, track3 og så op til f.eks 10.. og når man trykker et nummer, f.eks nummeret til track6, skal den udskrive tiden som der ligger nedenfor (skal bruges til en  cdafspiller :))
Avatar billede mikkelsune Nybegynder
13. juni 2006 - 12:03 #10
Jeg fik det til at virke.. jeg takker for hjælpen, og hvis du lige poster et svar så du kan få nogle points :)

koden:
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>

void main()
{
  int nummer;
  char variable1[7];
  char variable2[7];
  char liste[2][5][7] =  {  {"track1", "track2", "track3", "track4", "track5"},
                            {"1,4",    "2,4",    "3,3",    "4,3",  "5,3"}  };

  printf("\nSkriv nummer mellem 0 og 10: ");
  scanf("%d", &nummer);

  //skriv_navn(liste[nummer][0]);
  //skriv_navn(liste[nummer][0]);
  variable1 =(liste[0][nummer]);

  variable2 =(liste[1][nummer]);
  cout <<"nummer spilles "<< variable1 <<" tiden tilbage " << variable2 << "\n";
system("PAUSE");
}
Avatar billede arne_v Ekspert
13. juni 2006 - 12:59 #11
ok
Avatar billede v0id Nybegynder
21. juni 2006 - 16:17 #12
Det der er ikke god kode stil.
En 'forbedret' udgave vil se således ud:

#include <iostream>
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int nummer;
    char variable1[7];
    char variable2[7];
    char liste[2][5][7] =  {{"track1", "track2", "track3", "track4", "track5"},
                            {"1,4",    "2,4",    "3,3",    "4,3",    "5,3"}};

    std::cout << "Skriv nummer mellem 0 og 10: " << std::endl;
    scanf("%d", &nummer);

    variable1 = (liste[0][nummer]);
    variable2 = (liste[1][nummer]);

    std::cout <<"nummer spilles "<< variable1 <<" tiden tilbage " << variable2 << std::endl;

    system("PAUSE");
    return 0;
}

void main() bruges ikke mere, og det har heller aldrig været 'valid' c++. Derudover har du også brugt .h i din inkuldering af iostream, og du skifter mellem cout og printf(), hold dig til cout når det er C++. Du har heller ikke gjort brug af namespacet std, så derfor skal std:: foran cout og endl. Istedet for scanf() kan cin også bruges.

Jeg kan høre at du er ved at lære C++, så måske skulle du anskaffe dig en lidt nyere bog, eller en anden hjemmeside hvis det er tilfældet.
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