Kezdőoldal » Számítástechnika » Programozás » Mi nem jó ebben a C-s kódban?

Mi nem jó ebben a C-s kódban?

Figyelt kérdés

nem azt csinálja amire szántam:):) :


#include<stdio.h>

main()

{

int a,b,c,d;

int e[4];

for (a=0;a<=3;a++)

{ /* bekéri a a tömb elemeit*/

scanf("%d",&e[a]);

}

for (a=0;a<=3;a++) /* itt az első a tömb minden elemére megfogj csinálni:*/

{

for (c=1;c<=4;c++) /* ez minden elemmel eljátsza 4szer :*/

{

if (e[a]>e[c]) /* ez megvizsgálja hogy a tömb elemeiközül melyik a nagyobb és

ha van valami akkor kicseréli az elemeket*/

{

b=e[a];

d=e[c];

b=e[c];

d=e[a];

}

}

}

for (a=0;a<=3;a++)

{ /* ez meg kiírja az elemeket amik már átvannak "írva"*/

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

}

scanf("%d",&d);

}

nos az lenne hogy bekér 4 számot és növekvő sorrendbe rakja őket és ezt úgy csináltam meg hogy minden elemmel eljátsza azt hogy azt az elemet hasonlítja a többi elemhez és ha az egyik kisebb mint ő akkor kicseréli őket


de nemcseréli őket miért??


2011. márc. 19. 20:33
 1/6 A kérdező kommentje:
vagy hogyan kéne csinálni??
2011. márc. 19. 20:36
 2/6 anonim ***** válasza:

Most csak így ránézésre ez szúrt szemet:

for (c=1;c<=4;c++)

A 4 elemű tömbnek 0-tól 3-ig terjed az indexelése, tehát itt ki kéne venni az egyenlőségjelet. Itt egy jó rendező algoritmus:

for(int i=0;i<3;i++)

for(int j=i+1;j<4;j++)

if(x[i]>x[j])

{

int tmp=x[i];

x[i]=x[j];

x[j]=tmp;

}

2011. márc. 19. 20:41
Hasznos számodra ez a válasz?
 3/6 anonim ***** válasza:

Az a baj hogy összevissza hasonlítgatod az elemeket, néha az elöttelévővel is.


12. sortól írd át:


for (c=a;c<=4;c++) {

a=e[a];

e[a]=e[c];

e[c]=a;

}


A C-t nem ismerem teljesen, de remélem így jobb lesz.

2011. márc. 19. 20:43
Hasznos számodra ez a válasz?
 4/6 anonim ***** válasza:

így lenne jó amit írtál (az első is jót írt, majdnem ugyanezt)


for (a=0; a<=3; a++) /* itt az első a tömb minden elemére megfogj csinálni:*/

{

for (c=a+1; c<=3; c++) /* ez minden elemmel eljátsza 4szer :*/

{

if (e[a]>e[c]) /* ez megvizsgálja hogy a tömb elemeiközül melyik a nagyobb és

ha van valami akkor kicseréli az elemeket*/

{

b=e[a];

d=e[c];

e[c] = b;

e[a] = d;

}

}

}

2011. márc. 19. 20:44
Hasznos számodra ez a válasz?
 5/6 A kérdező kommentje:

köszi mindenkinek

utolsó az van hogy átnéztem mit írtál és rájöttem hogy én is ezt akartam de úgy gondoltam hogyha a=0 akkor a+1 =1 de arra nem gondoltam hogy a változik!

2011. márc. 19. 20:48
 6/6 A kérdező kommentje:
nagyon szépen köszönöm még egyszer !!!
2011. márc. 19. 20:57

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!