Bu yazımızda C programlama dilinde farklı yollar kullanarak, bir dizideki en büyük ve en küçük sayıyı bulma örneğini çözeceğiz. Soruya ve çözümlerine geçmeden önce, eğer eksikleriniz var ise buraya tıklayarak C programlama dili döngüler konusunu okumanızı tavsiye ederim. Hemen sorumuza geçelim.

Soru : Kullanıcıdan alınan 5 sayı arasından en büyük ve en küçük sayıyı bulunuz. Kullanıcıdan alınan sayıları dizide saklayın.

Cevap : Öncelikle en büyük ve en küçük sayıyı bulurken kullanacağımız mantığı anlamalıyız.

Kullanıcıdan tüm elemanları alıp diziye kaydettikten sonra, daha önce tanımladığımız ‘max’ ve ‘min’ elemanlarına dizinin ilk elemanını atıyoruz. Daha sonra bir döngü ile dizinin her elemanını ‘max’ ve ‘min’ değişkenleri ile karşılaştırıyoruz. Bu sayede dizide bulunan her elemanı birbiri ile karşılaştırmış oluyoruz. Birazdan kodu da incelediğinizde daha iyi anlayacağınızı düşünüyorum. Hemen cevaplara geçelim.

For Döngüsü İle En Büyük ve En Küçük Sayıyı Bulma

#include <stdio.h>
#define elemanSayisi 5
int main(){
     int sayilar[elemanSayisi], max, min;

     for(int i=0 ; i<elemanSayisi ; i++){
          printf("%d. sayiyi giriniz : ",i+1);
          scanf("%d", &sayilar[i]);
     }

     max = sayilar[0];
     min = sayilar[0];

     for(int i=0 ; i<elemanSayisi ; i++){
          if(max < sayilar[i])
               max = sayilar[i]; // Eğer dizinin herhangi bir elemanı max'tan büyükse yeni max o olacak.

          if(min > sayilar[i])
               min = sayilar[i]; //Aynı şekilde min'den küçük bir eleman var ise yeni min o olacak. 
     }

     printf("Dizideki en buyuk sayi : %d \n", max);
     printf("Dizideki en kucuk sayi : %d", min);
 }

Çıktısı :

For Döngüsü İle En Büyük ve En Küçük Sayıyı Bulma - C programlama örnekleri - C programlama max ve min bulma

While Döngüsü İle En Büyük ve En Küçük Sayıyı Bulma

#include <stdio.h>
#define elemanSayisi 5
int main(){
     int sayilar[elemanSayisi], max, min, i=0;

     for(int i=0 ; i<elemanSayisi ; i++){
          printf("%d. sayiyi giriniz : ",i+1);
          scanf("%d", &sayilar[i]);
     }

     max = sayilar[0];
     min = sayilar[0];

     while(i<elemanSayisi){
          if(max < sayilar[i])
               max = sayilar[i];

          if(min > sayilar[i])
               min = sayilar[i];

          i++;
     }

     printf("Dizideki en buyuk sayi : %d \n", max);
     printf("Dizideki en kucuk sayi : %d", min);
 }

Do While Döngüsü İle En Büyük ve En Küçük Sayıyı Bulma

#include <stdio.h>
#define elemanSayisi 5

void maxMinBul(int dizi[]){

}

int main(){
     int sayilar[elemanSayisi], max, min, i=0;

     for(int i=0 ; i<elemanSayisi ; i++){
          printf("%d. sayiyi giriniz : ",i+1);
          scanf("%d", &sayilar[i]);
     }

     max = sayilar[0];
     min = sayilar[0];

     do{
          if(max < sayilar[i])
               max = sayilar[i];

          if(min > sayilar[i])
               min = sayilar[i];

          i++;
     }while(i<elemanSayisi);

     printf("Dizideki en buyuk sayi : %d \n", max);
     printf("Dizideki en kucuk sayi : %d", min);
 }

Fonksiyon İle En Büyük ve En Küçük Sayıyı Bulma

Burada for döngüsü kullanacağım. Sizler diğer döngüleri de kullanarak yapabilirsiniz. Ayrıca, fonksiyonlar konusunda eksikleriniz var ise, buraya tıklayarak C programlama dili fonksiyonlar konusunu okursanız sizin için daha faydalı ve anlaşılır olacaktır.

Bu yazı dikkatini çekebilir.   C Programlama Ortalama Hesaplama

Parametresiz Fonksiyon ile Çözümü

#include <stdio.h>
#define elemanSayisi 5

void maxMinBul(int dizi[]){
     int max,min;

     max = dizi[0];
     min = dizi[0];

     for(int i=0 ; i<elemanSayisi ; i++){
          if(max < dizi[i])
               max = dizi[i];

          if(min > dizi[i])
               min = dizi[i];
     }

     printf("Dizideki en buyuk sayi : %d \n", max);
     printf("Dizideki en kucuk sayi : %d", min);
}

int main(){
     int sayilar[elemanSayisi];

     for(int i=0 ; i<elemanSayisi ; i++){
          printf("%d. sayiyi giriniz : ",i+1);
          scanf("%d", &sayilar[i]);
     }

     maxMinBul(sayilar);
}

Parametreli Fonksiyon ile Çözümü

#include <stdio.h>
#define elemanSayisi 5

int maxBul(int dizi[]){
     int max;
     max = dizi[0];

     for(int i=0 ; i<elemanSayisi ; i++){
          if(max < dizi[i])
               max = dizi[i];
     }

     return max;
}

int minBul(int dizi[]){
     int min;
     min = dizi[0];

     for(int i=0 ; i<elemanSayisi ; i++){
          if(min > dizi[i])
               min = dizi[i];
     }

     return min;
}

int main(){
     int sayilar[elemanSayisi];

     for(int i=0 ; i<elemanSayisi ; i++){
          printf("%d. sayiyi giriniz : ",i+1);
          scanf("%d", &sayilar[i]);
     }

     printf("Dizideki en buyuk sayi : %d \n", maxBul(sayilar));
     printf("Dizideki en kucuk sayi : %d", minBul(sayilar));
}

Bu yazımızda C programlama dilinde tüm döngüleri kullanarak bir dizideki en büyük ve en küçük sayıyı bulma kodunu yazdık. Ayrıca hem parametreli, hem de parametresiz fonksiyonlar ile nasıl çözüleceğini de gördük. Umarım faydalı olmuştur. Diğer C programlama örneklerimizi de görmek isterseniz buraya tıklayarak tümünü görebilirsiniz.