Kod:
//eğer mantığını kavramak isterseniz bu daha uygun
//fakat bubble sort daha kolay ezberleniyor
//insertion bence daha mantıklı
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main(int argc, char *argv[]) {
int i,j,n,x,y;
setlocale(LC_ALL,"turkish");
system("color 1e");
tekrar:
printf("\n\n Dizinin eleman sayısını giriniz...\n");
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++)
{
printf(" a[%d]:",i);
scanf("%d",&a[i]);
}
for(i=1;i<n;i++){
x=a[i];//ilk elemanı bir değişkenle tutuyoruz.
j=i-1;//while kullandığımız için jtanımlıyoruz.
while((x<a[j])&&(j>=0)){/*eğer a[j+1] büyükse döngüye girer ve değiştirir ayrıca j<0 olursa tanımsız olacağı içinde kontrol ediyor*/
a[j+1]=a[j];
j=j-1;
}
a[j+1]=x;/*üstteki tuttuğu sayıyı a[j+1]e atıyor yani a[i]ye */
}
printf("\n\n");
for(i=0;i<n;i++)
printf("b[%d]:%d\n",i,a[i]);/*dizinin yazdırıldığı kısım */
//go to kontrolleri.
hata:
printf("\n\n çıkış için 0 farklı dizi için 1 \n");
scanf("%d",&y);
if(y==0)
{
goto cikis;
}
else if(y==1)
{
goto tekrar;
}
else
{
goto hata;
}
cikis:
return 0;
}
açıklama yaparken hataya sebebiyet vermiş olabilirim o yüzden bu kesin çalışan açıklamasız
Kod:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main(int argc, char *argv[]) {
int i,j,n,x,y;
setlocale(LC_ALL,"turkish");
system("color 1e");
tekrar:
printf("\n\n Dizinin eleman sayısını giriniz...\n");
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++)
{
printf(" a[%d]:",i);
scanf("%d",&a[i]);
}
for(i=1;i<n;i++){
x=a[i];
j=i-1;
while((x<a[j])&&(j>=0)){
a[j+1]=a[j];
j=j-1;
}
a[j+1]=x;
}
printf("\n\n");
for(i=0;i<n;i++)
printf("b[%d]:%d\n",i,a[i]);
hata:
printf("\n\n çıkış için 0 farklı dizi için 1 \n");
scanf("%d",&y);
if(y==0)
{
goto cikis;
}
else if(y==1)
{
goto tekrar;
}
else
{
goto hata;
}
cikis:
return 0;
}