Az alábbi egyszerű c++-os programba mi a hiba?
Íme a kód:
int main()
{
cout<<"Bekérek 10 számot és rendezem őket"<<endl;
int c[10];
for(int a=0;a<10;a++)
{
cout<<"Kérem az "<<a+1<<"számot"<<endl;
c[a]=beolvas_integer(a);
}
cout<<"Köszönöm a megadást!"<<endl;
int i;
int j;
int temp;
for(i=1;i<10;i++)
{
for(j=10;j<i;--i)
{
if (c[j]<c[j-1])
{
temp=c[j];
c[j]=c[j-1];
c[j-1]=temp;
}
}
}
int d;
for(d=0;d<10;d++)
{
cout<<" A rendezett tömb "<<d<<". eleme: "<<c[d]<<endl;
}
return 0;
}
A gcc szerint nincs benne hiba. Beviszek minden adatot és nem teszi sorrendbe nekem hiába szeretném.
Buborékos rendezést implementálok át pascal-ról c++-ra. Így próbálok alkalmazkodni az "új" nyelvhez. Korábban már próbálkoztam vele de túl korán abbahagytam. Tudom, hogy vannak beépített függvények, vagy legalább is halottam róla, de egyelőre szépen sorjában szeretnék haladni vele. A beolvas_integer saját függvényemmel semmi baj nincs az csak hibát kezel, ha véletlenül string tipust adnék meg.
Bocs tévesen írtam be, megláttam egy hibát, amit írtál, hogy az i értékét csökkentettem, amikor azt nem kellett volna. De nem értem miért nem csinál semmit.
Fogja magát bekéri az adatokat.
Megadom őket, majd egyszerűen kiírja őket mintha nem is tettem volna sorrendbe őket.
Külső ciklus: i 1től megy 10-ig.
Belső ciklus: j 10-től megy, amíg j kisebb, mint i.
J sosem lesz kisebb, mint i, be sem lépsz a ciklusba, így valóban nem csinálsz semmit.
Most már működik.
Azt csináltam, hogy a j-> menjen 0-ig, és így jó.
Viszont a fejemben a pascal-os múltam miatt ez lenne, hogy második ciklus
for j:=10 downto i legyen. Ezt nem tudom, hogy kell c-s alapra átalakítani. Emiatt nem működött a függvényem.
Annak idején a tanárom levezette igaz ő visual basic-ben( tehát kvázi ugyanezzel szintaxal), de c-ben nem. Mi lenne a legszebb megoldás?
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!