C dilinde klavyeden girilen 3 sayıyı küçükten büyüğe sıralama

zeynep06

Femtopat
Katılım
29 Ekim 2020
Mesajlar
4
Daha fazla  
Cinsiyet
Kadın
Girilen üç sayıyı küçükten büyüğe doğru sıralayan C dilinde algoritmayı gösterir misiniz? Ben yaparken çok karıştı ve anlamadım.
 
Son düzenleyen: Moderatör:
C:
void swap(int* number1,int* number2){
    int tmp = number1;
    number1 = number2;
    number2 = tmp;
}

int main(){
    int a,b,c;
    printf("Sayı giriniz : \n");
    scanf("%d",&a);
    printf("Sayı giriniz : \n");
    scanf("%d",&b);
    printf("Sayı giriniz : \n");
    scanf("%d",&c);
   
    if(a>c){
        swap(&a,&c);
    }
    if(a>b){
        swap(&a,&b);
    }
    if(b>c){
        swap(&b,&c);
    }
   
   
}
ilk başta a ile c yi kıyaslıyor. değiştiriyor duruma göre. 2. kıyastan sonra a en küçük eleman olmuş oluyor. Ardından b ile c yi de kıyaslayınca yeni çıkan düzende c>b>a olarak elimizde kalıyor.
 
Hocanız ne kullanarak yapmanızı istedi bilmiyorum. Envai çeşit algoritma ile yapılabilir bir program. @Ömerrrrrr Hocam if sorgularıyla beraber sıralamış. Ben de örnek ve fikir olsun diye; dizi ve döngü kullanarak C++'da yaptım.

Aradaki syntax farkları giderilirse kod yapısında değişiklik yapmadan C'ye çevrilebilir.

C++:
#include <iostream>

using namespace std;

int main(){
    
    int dizi[2],temp;

    for(int i=1;i<=3;i++)
{
    cout<<i<<". Sayiyi Girin ->";
    cin>>dizi[i-1];
}

    for(int a=0;a<=2;a++)
    {
    for(int b=0;b<=2;b++)
        {
        if(dizi[b]>dizi[b+1])
            {
            temp=dizi[b];
            dizi[b]=dizi[b+1];
            dizi[b+1]=temp;
            }
        }
    }
    
    for(int d=0;d<=2;d++)
    {
        cout<<dizi[d]<<endl;
    }
return 0;
}
 

Geri
Yukarı