Miért nem cseréli ki a számokat?
#include<stdio.h>
main()
{
int szamok[12]={20,10,6,4,2,0,-50,-20,-10,-5,-4,-1},i,j,csere,voltecsere;
i=0;
do
{
voltecsere=0;
for(j=0;j>=10;j++)
if(szamok[j]<szamok[j+1])
{
csere=szamok[j];
szamok[j]=szamok[j+1];
szamok[j+1]=csere;
voltecsere=1;
}
for(i=6;i<4;i++)
for(j=i+1;j<12;j++)
if(szamok[j]>szamok[i])
{
csere=szamok[j];
szamok[j]=szamok[i];
szamok[i]=csere;
voltecsere=1;
}
i++;
}while(i<=10&&voltecsere==1);
for(i=0;i<12;i++)
printf("\n%d",szamok[i]);
getch();
}





"for(j=0;j>=10;j++)"
j-nek nulla értéket adsz, de a ciklust addig akarod futtatni, míg nagyobb egyenlő mint tíz, tehát sosem fog lefutni.
"for(i=6;i<4;i++)"
i-nek 6-os kezdőértéket adsz, mégis addig futtatod, míg kisebb 4, tehát ez sem fog soha lefutni. Mellesleg az i-t már használod egyszer ciklusváltozónak.
Például a kódod a 20, 19, 40 sorozatot nem fogja rendezni, mivel a 20 és 19 összehasonlításakor a feltétel hamis lesz a "voltcsere" marad 0 és a 40 is marad rendezetlenül.










Például ezt:
#include<stdio.h>
main()
{
int szamok[]={1, 3, 5, 7, 9, 5, 3, 4, 6, -8, 0,-10},i,j,csere,voltecsere;
i=0;
do
{
for(j=0;j<=11-i;j++){
if(szamok[j]>szamok[j+1])
{
csere=szamok[j];
szamok[j]=szamok[j+1];
szamok[j+1]=csere;
}
}
i++;
}while(i<=10);
for(i=0;i<12;i++)
printf("\n%d",szamok[i]);
getch();
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!