|
En büyük 2.sayiyi Bulan program |
|
|
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 100int 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 siraliyorfor (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; }
|