Özdevingen(Recursive) Yapısı ile Dizi Toplamı ve Ortalaması

Merhaba arkadaşlar bu programda recursive programlama mantığını göreceğiz.

Aşağıdaki başlangıç değerleri ile tanımı verilmiş A[10] dizinli değişkenini kullanarak aşağıdaki işlemleri yapan özyinemeli(Recursive) fonksiyonları hazılıyoruz.
int a[10]={25,48,12,91,74,148,39,1,98,86};

•    a[] Dizinli değişkenin en büyükk değerinin bulunması. MaxBul(),
•    a[] Dizinli değikenin eleman değerlerinin toplamının bulunması. ToplamBul(),
•    a[] Dizinli değişkenin elemanlarının ortalamasını bul. ortBul().

Yol Gösterme:Fonksiyonların prototipini aşağıdaki biçimde hazırlıyoruz.
<geri dönen değer> fonksiyon_adı(int a[ ], int n);

 

#include <stdio.h>
#include <stdlib.h>

int enbuyuk(int a[], int n) {

if(n==1) {

return a[0];

}
else {

int kalaninenbuyugu=enbuyuk(a, n-1);
return a[n-1] > kalaninenbuyugu ? a[n-1] : kalaninenbuyugu;

}

}

int toplam(int a[], int n) {

if(n==1) {
return a[0];
}
else {
return a[n-1]+toplam(a, n-1);
}

}

float ort(int a[], int n) {

//return (float)toplam(a,n)/n;

if(n==1) {
return a[0];
}
else {
return (ort(a, n-1)*(n-1)+a[n-1])/n;
}

}

int main() {

int a[]={25,48,12,91,74,148,39,1,98,86};

printf(“En buyuk: %d, toplam: %d, ortalama: %f”, enbuyuk(a, 10), toplam(a,10), ort(a, 10));

system(“pause”);

return 0;

}

You may also like...

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.