Çözüldü C++ kod hatası

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Katılım
18 Haziran 2021
Mesajlar
5
Daha fazla  
Cinsiyet
Erkek
Bu kod satırını çalıştırınca en büyük sayıyı doğru buluyor ancak en küçük sayıyı her zaman 1 buluyor. Yardımcı olursanız sevinirim.

C++:
#include <stdio.h>

int main()
{
        int sayi ,enbuyuk ,enkucuk;

   
    for(int i=1;i>0;i++)
    {      
        printf("Lutfen bir sayi giriniz:");
        scanf("%d",&sayi);
        if(sayi==-1) break;
        if(sayi>enbuyuk)
        {
            enbuyuk=sayi;
        }
        else if(sayi<enkucuk)
        {
            enkucuk=sayi;
        }
    }

        printf("En buyuk sayi %d dir.\n",enbuyuk);
        printf("En kucuk sayi %d dir.",enkucuk);
     
        
return 0;
}
 
Çözüm
C:
#include <stdio.h>

int main()
{
        int sayi ,enbuyuk ,enkucuk;

 
    for(int i=1;i>0;i++)
    {   
        printf("Lutfen bir sayi giriniz:");
        scanf("%d",&sayi);
        if (i == 1) {
            enkucuk = sayi;
            enbuyuk = sayi;
        }
        if(sayi==-1) break;
        if(sayi>enbuyuk)
        {
            enbuyuk=sayi;
        }
        else if(sayi<enkucuk)
        {
            enkucuk=sayi;
        }
    }

        printf("En buyuk sayi %d dir.\n",enbuyuk);
        printf("En kucuk sayi %d dir.",enkucuk);
  
      
return 0;
}

Kodunuzu şu şekilde düzenleyin, enkucuk ve enbuyuk değişkenlerine değer vermeniz gerekiyordu. For döngüsü ilk çalıştığında sayı değerlerini enbuyuk ve enkucuk değişkenlerine atamak sorunu çözer.
C:
#include <stdio.h>

int main()
{
        int sayi ,enbuyuk ,enkucuk;

 
    for(int i=1;i>0;i++)
    {   
        printf("Lutfen bir sayi giriniz:");
        scanf("%d",&sayi);
        if (i == 1) {
            enkucuk = sayi;
            enbuyuk = sayi;
        }
        if(sayi==-1) break;
        if(sayi>enbuyuk)
        {
            enbuyuk=sayi;
        }
        else if(sayi<enkucuk)
        {
            enkucuk=sayi;
        }
    }

        printf("En buyuk sayi %d dir.\n",enbuyuk);
        printf("En kucuk sayi %d dir.",enkucuk);
  
      
return 0;
}

Kodunuzu şu şekilde düzenleyin, enkucuk ve enbuyuk değişkenlerine değer vermeniz gerekiyordu. For döngüsü ilk çalıştığında sayı değerlerini enbuyuk ve enkucuk değişkenlerine atamak sorunu çözer.
 
Çözüm
Kodda enbuyuk ve enkucuk değişkenlerine başlangıç değeri verilmeden karşılaştırma yapıyorsun. Rastgele sayılar atanıyor o değerlere. Bu şekilde yapmak yerine sayıları kullanıcıdan aldıktan sonra array içinde en büyük ve en küçüğü belirlemek daha iyi olabilir.
 

Yeni konular

Geri
Yukarı