/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Kan ikke kompilere min swap kode
Fra : JS


Dato : 20-11-04 19:35

Jeg har skrevet følgende kode:

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

void swap(int v[], int k) {
{
int temp;
temp = v[k];
v[k] = v[k+1];
v[k+1] = temp;
}
printf("%i\n", k);
}


main()
{
swap([22],2);
system("PAUSE");

return 0;
}

Men jeg kan ikke få den kompileret.

Er der iøvrigt en måde at angive den på uden at man skal kalde den inde fra
en main metode? Kan man ikke bare lave den som "én" kode?

Mvh
Johs



 
 
Mogens Hansen (20-11-2004)
Kommentar
Fra : Mogens Hansen


Dato : 20-11-04 20:09


"JS" <dsa.@asdf.com> wrote in message news:cno2ln$b8e$1@news.net.uni-c.dk...

[8<8<8<]
> swap([22],2);

Hvad er det du vil have til at ske ?


Venlig hilsen

Mogens Hansen



JS (20-11-2004)
Kommentar
Fra : JS


Dato : 20-11-04 20:18


"Mogens Hansen" <mogens_h@dk-online.dk> skrev i en meddelelse
news:cno4o3$1ksm$1@news.cybercity.dk...
>
> "JS" <dsa.@asdf.com> wrote in message
news:cno2ln$b8e$1@news.net.uni-c.dk...
>
> [8<8<8<]
> > swap([22],2);
>
> Hvad er det du vil have til at ske ?

den skal bytte om på 2 elementers placering i et array.

johs



Mogens Hansen (20-11-2004)
Kommentar
Fra : Mogens Hansen


Dato : 20-11-04 20:22


"JS" <dsa.@asdf.com> wrote in message news:cno55e$bru$1@news.net.uni-c.dk...
>
> "Mogens Hansen" <mogens_h@dk-online.dk> skrev i en meddelelse
> news:cno4o3$1ksm$1@news.cybercity.dk...
>>
>> "JS" <dsa.@asdf.com> wrote in message
> news:cno2ln$b8e$1@news.net.uni-c.dk...
>>
>> [8<8<8<]
>> > swap([22],2);
>>
>> Hvad er det du vil have til at ske ?
>
> den skal bytte om på 2 elementers placering i et array.

Den er jeg med på.
Men hvad prøver du at udtrykke når der sker når du skriver [22] ?

Venlig hilsen

Mogens Hansen



JS (20-11-2004)
Kommentar
Fra : JS


Dato : 20-11-04 20:32


"Mogens Hansen" <mogens_h@dk-online.dk> skrev i en meddelelse
news:cno5gb$1lmc$1@news.cybercity.dk...
>
> "JS" <dsa.@asdf.com> wrote in message
news:cno55e$bru$1@news.net.uni-c.dk...
> >
> > "Mogens Hansen" <mogens_h@dk-online.dk> skrev i en meddelelse
> > news:cno4o3$1ksm$1@news.cybercity.dk...
> >>
> >> "JS" <dsa.@asdf.com> wrote in message
> > news:cno2ln$b8e$1@news.net.uni-c.dk...
> >>
> >> [8<8<8<]
> >> > swap([22],2);
> >>
> >> Hvad er det du vil have til at ske ?
> >
> > den skal bytte om på 2 elementers placering i et array.
>
> Den er jeg med på.
> Men hvad prøver du at udtrykke når der sker når du skriver [22] ?


Jae..jeg tænkte at det var en liste som fx havde 22 elementer, men jeg er
temmelig usikker på hvordan man angiver parametere i C.



Mogens Hansen (20-11-2004)
Kommentar
Fra : Mogens Hansen


Dato : 20-11-04 20:46


"JS" <dsa.@asdf.com> wrote in message news:cno5vf$c10$1@news.net.uni-c.dk...

[8<8<8<]
> Jae..jeg tænkte at det var en liste som fx havde 22 elementer, men jeg er
> temmelig usikker på hvordan man angiver parametere i C.

Du skal først erklære arrayet og derefter bruge det:

int main()
{
int numbers[22];
swap(numbers,2);

Husk at værdiedirne i "numbers" er udefineret.

Et par design-spørgsmål til din "swap" funktion:
* Hvorfor er den begrænset til kun at virke på arrays ?
* Hvorfor er den begrænset til kun at kunne ombytte elementer der følger
umiddelbart efter hinanden ?


Venlig hilsen

Mogens Hansen



JS (20-11-2004)
Kommentar
Fra : JS


Dato : 20-11-04 21:13

> Et par design-spørgsmål til din "swap" funktion:
> * Hvorfor er den begrænset til kun at virke på arrays ?
> * Hvorfor er den begrænset til kun at kunne ombytte elementer der følger
> umiddelbart efter hinanden ?


Har ikke lige forstand på at udvide den til at kunne rumme flere tilfælde,
starter med at se om jeg overhovedet kan få denne swap til at du.

js



JS (20-11-2004)
Kommentar
Fra : JS


Dato : 20-11-04 20:41

> Den er jeg med på.
> Men hvad prøver du at udtrykke når der sker når du skriver [22] ?


ok nu har jeg defineret en konstant: int vaps[] = { 0,1,2,3,4,5 };

så kalder jeg swap med parameterne (vaps, 2) men så bliver resultatet bare
2! Burde det ikke blive listen {0,1,3,2,4,5}?

Johs



Mogens Hansen (20-11-2004)
Kommentar
Fra : Mogens Hansen


Dato : 20-11-04 20:50


"JS" <dsa.@asdf.com> wrote in message news:cno6gr$c5g$1@news.net.uni-c.dk...

[8<8<8<]
> ok nu har jeg defineret en konstant: int vaps[] = { 0,1,2,3,4,5 };
>
> så kalder jeg swap med parameterne (vaps, 2) men så bliver resultatet bare
> 2!

Prøv at kigge hvad det er du udskriver...

> Burde det ikke blive listen {0,1,3,2,4,5}?

Hvordan ved du at den ikke er det (hint: det er den) ?

Venlig hilsen

Mogens Hansen



JS (20-11-2004)
Kommentar
Fra : JS


Dato : 20-11-04 21:16


"Mogens Hansen" <mogens_h@dk-online.dk> skrev i en meddelelse
news:cno757$1noc$1@news.cybercity.dk...
>
> "JS" <dsa.@asdf.com> wrote in message
news:cno6gr$c5g$1@news.net.uni-c.dk...
>
> [8<8<8<]
> > ok nu har jeg defineret en konstant: int vaps[] = { 0,1,2,3,4,5 };
> >
> > så kalder jeg swap med parameterne (vaps, 2) men så bliver resultatet
bare
> > 2!
>
> Prøv at kigge hvad det er du udskriver...

Ja jeg kan godt se at den kun skal udskrive k. Men burde resultatet ikke
være hele det array som er blevet "swappet".

js



Bertel Brander (20-11-2004)
Kommentar
Fra : Bertel Brander


Dato : 20-11-04 20:41

JS wrote:

> Jeg har skrevet følgende kode:
>
> #include <stdio.h>
> #include <stdlib.h>
>
> void swap(int v[], int k) {
> {
> int temp;
> temp = v[k];
> v[k] = v[k+1];
> v[k+1] = temp;
> }
> printf("%i\n", k);
> }
>

int main()
{
int Arr[4] = {1,2,3,4}, i;
for(i = 0; i < 4; i++)
printf("%d\n", Arr[i]);
printf("\n");
swap(Arr, 2);
printf("\n");
for(i = 0; i < 4; i++)
printf("%d\n", Arr[i]);

system("PAUSE");

return 0;
}

> Men jeg kan ikke få den kompileret.
>
> Er der iøvrigt en måde at angive den på uden at man skal kalde den inde fra
> en main metode? Kan man ikke bare lave den som "én" kode?

Ikke forstået.

--
"I learned more from a three minute record
than I ever learned in school"
- Bruce Springsteen

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408928
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste