|
| 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
| |
|
|