En büyük 2.sayiyi Bulan program Yazdır
Kullanıcı Değerlendirmesi: / 0
ZayıfEn iyi 
ilyas tarafından yazıldı   
Pazartesi, 09 Mart 2009 21:16

En büyük 2.sayiyi Bulan program.Size 100 olarak tanimlandigi içn 100 tane random rastgele numara üretilecek ve bunlarin ikinci en büyük olan sayiyi bize bildirecek olan kod:)mantik basit. isterseniz ilkini yada 20. olan büyük sayiyida bulabilirsiniz.

output:Deneyiniz:)

  • #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #define SIZE 100
  • int main()
    {
    int a[SIZE];
    int max1, max2, i, k, temp;
    srand(time(0));
    for (k = 0; k < SIZE; ++k)
    a[k] = rand() % 1000;//1000den kücük SIZE kadar sayi üretiyor.yani . ile 1000 arasinda
    max1 = a[0];//geçiçi olarak max1 i tanimliyoruz ve max2 yi tanimliyoruz.sebebi compare(karsilastirma yapmak için tanimli olmasi lazim.tanimlmazsaniz ramden degisik adresleri basacaktir size
    max2 = a[1];
    if (a[1] > a[0]) {
    max1 = a[1];
    max2 = a[0];
    }
    for (k = 2; k < SIZE; ++k)
    if (a[k] > max1) {//k=1 olsaydi dizinin çindeki sayilar belittigimiz en büyük sayidan büyükse belirttigimiz sayi yi en büyük olan dizi elemanina esitleyerek en büyük sayiyi elde etmis oluyoruz
    max2 = max1;
    max1 = a[k];
    }
    else if (a[k] > max2)
    max2 = a[k];
    printf("en buyuk ikinci deger = %d\n", max2);
    /*** dizi siralaniyor ***/
    for (i = 0; i < SIZE - 1; ++i);//1 ile 1000 arasindaki rastgele üretilen sayilari siraliyor
  • for (k = 0; k < SIZE - 1 - i; ++k)
    if (a[k] > a[k + 1]) {
    temp = a[k];
    a[k] = a[k + 1];
    a[k + 1] = temp;
    }
  • printf("siralanan dizi yazdiriliyor\n");//siraladiktan sonra bastiriliyor
    for (k = 0; k < SIZE; ++k)
    printf("%3d ", a[k]);
  • return 0;
    }