programda rastgele sayı yazdırmak istersen rand() fonksiyonunu kullanabilirsin.Rand fonksiyonu rastgele sayı üreten bir fonksiyondur;ancak hep aynı sayılıları üretir.Bunun için srand(time(NULL); eklersen.O zaman aynı sırada sayı üretmeyecektir.
örnege bakabilirsin:(rastgele sayı uretimi)
bunları iki fonksiyon (aritmetik fonksiyon ve aritmetik ortalamdan buyuk kucuk bulma fonksiyonu ) ile yapabilrisin yada fonksiyon yazmadan(main de) yapabilirsin.Fikrim:Tek tek aldıgın sayıları ve buldugun aritmetik ortalama döngü ile karsılastırırsın (if/else)buyuk ve kucuk ıcın değişken tanımlarsın.Bcount=0,Kcount=0.Eger buyuk ise Bcount++ -> Bcount=Bcount+1; değilse Kcount++ dersin boylece hem buyuk hemde kucuk sayıların kactane olduguna bakarsın.
main(){
srand(time(NULL));
int a[20];
int toplam,i;
float ort;
i=0,toplam=0;
for(i=0;i<20; i++){
a=1+rand()%20 //1-20 sayısı arasında rastgele sayı atar.
toplam=toplam+a;
}
ort=toplam/20.0;
printf("ort %f olarak bulundu",ort);
getch();
}
Benim Program:ort buluyor ve buyuk olan sayıyı kucuk olanları buluyor.
bunu iki fonksiyon kullanarak yapıyor.Önce rand fonksiyonu(2 fonksiyon dısında bir fonksiyon hazır fonksiyon) kullanarak rastgele sayıları while döngüsü içinde atıyor.Sonra aritmetik adlı fonksiyona girip main'deki float yapısındaki k'ya aritmetik değeri döndürüyor ve yazdırıyor.Ardından 2. fonksiyona gidiyor.3 değer alıyor 1.elimizdeki dizi 2.aritmetik ortalama 3.b dizisi ,void(=geriye bi şey dönmez, bulunan sayıları fonksiyon dısında main'de yazdırmak istediğimden bir dizi gönderip buyuk ve kucuk kac sayı varsa onları b[0]=Bcount ,b[1]=Kcount olarak diziye atıyorum.Diziler fonksiyon içinde değişirse ana fonksiyonda da değiştiğinden kolayca main'de bu sayıyı(Bcount,Kcount) yazdırıyorum.Eğer ki bilmediğin karışık gelen bi program ise,birazcık göz at.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void func2(int a[],int Aort,int b[]){
int i=0,Bcount=0,Kcount=0,esit=0;
while(i<20){
if(a<Aort)
Kcount++;
else if(a>Aort)
Bcount++;
else
esit ++;
i++;
}
b[0]=Kcount;
b[1]=Bcount; //yorum: b[3]=esit; yaparak
//esit olanı yazdırabilirsin
}
float Aritmetik(int x[]){
int i=0,sum=0;
float y;
for(i=0;i<20;i++)
sum+=x;
return sum/20.0;//float sayı döndürür(ondalık sayı)
}
//ana fonksiyon:
int main()
{ int A[20],B[3],i=0;
float k;
srand(time(NULL));
while(i<20){
A=1+rand()%20; // 1-20 arası rastgele sayı atar.
printf("%d\n",A);//Rastgele alınan sayıları gösterir.
i++;
}
k=Aritmetik(A);
// %2.1f= 2 karakterlik ve noktadan sonra tek
//karakter olarak yaz(2.1 gibi)
printf("20 ramdom sayinin aritmetik ortalamasi:%2.1f\n\n",k);
func2(A,k,B);
printf("Ortalamadan buyuk %d sayi vardir.\nVe ortalamadan kucuk %d sayi vardir.\n",B[0],B[1]);
return 0;
}