C'de maksimum ve minimum değerleri bulamamak

Gorlaura

Hectopat
Katılım
12 Temmuz 2022
Mesajlar
98
Daha fazla  
Cinsiyet
Erkek
Arkadaşlar ödevimde 5 elemanlı olan dizinin ortalamasını, belirtilen sayının dizide kaç kez yer aldığını, dizinin Max ve min değerlerini istiyor ama Max vemin değerleri alırken hata veriyor. Too few arguments to function diyor. Şimdiden teşekkür ederim.

C:
#include <stdio.h>

float ortbul(int dolas[])
{
 int toplam=0;

 for(int i=0;i<5;i++)
 {
 toplam+=dolas[i];
 }
 float ort=toplam/5.0;
 return ort;

}

int kackez(int dizi[], int aranan)
{
 int sayac=0;
 for(int i=0;i<5;i++)
 {
 if(dizi[i]==aranan)
 {
 ++sayac;
 }
 }
return sayac;

}

int maxsayi(int dizi[], int max)
{
 max=dizi[0];
for(int i=0;i<5;i++)
{
 if(dizi[i] > max)
 {
 dizi[i]=max;
 }
}
return max;

}

int minbul(int dizi[],int min)
{
min=dizi[0];
for(int i=0;i<5;i++)
{
 if(dizi[i]<min){
 dizi[i]=min;
 }
}

return min;

}

int main () {
 int max,min;
 int dizi[5];
 for(int i=0;i<5;i++)
 {
 printf("%d. sayi giriniz:", (i+1));
 scanf("%d",&dizi[i]);
 }
float ort=ortbul(dizi);
printf("%.2f\n", ort);

printf("%d adet\n", kackez(dizi, 12));

printf("%d en buyuk degerdir\n", maxsayi(dizi));

printf("%d en kucuk sayidir", minbul(dizi));

 return 0;
}
 
Son düzenleyen: Moderatör:
minbul ve maxsayi fonksiyonlarına min ve max parametresi eklemişsiniz, fonksiyonu çağırırken o parametreyi vermediğiniz içinde hata veriyor. Değişken tanımlamayı fonksiyonun içinde yapacaksınız, fonksiyona parametre ekleyerek değil.
C:
#include <stdio.h>

float ortbul(int dolas[]) {
    int toplam = 0;

    for(int i = 0; i < 5; i++) {
         toplam += dolas[i];
    }
     float ort = toplam / 5.0;
     return ort;
}

int kackez(int dizi[], int aranan) {
    int sayac = 0;
     for(int i = 0; i < 5 ;i++) {
         if(dizi[i] == aranan) {
             ++sayac;
        }
     }
    return sayac;
}

int maxsayi(int dizi[]) {
     int max = dizi[0];
    for(int i = 0; i < 5; i++) {
         if(dizi[i] > max) {
             dizi[i] = max;
        }
    }
    return max;
}

int minbul(int dizi[]) {
    int min = dizi[0];
    for(int i = 0; i < 5; i++) {
         if(dizi[i] < min) {
             dizi[i] = min;
        }
    }
    return min;
}

int main () {
     int max, min;
     int dizi[5];
     for(int i = 0; i < 5; i++) {
         printf("%d. sayi giriniz:", (i+1));
         scanf("%d",&dizi[i]);
     }
    float ort = ortbul(dizi);
    printf("%.2f\n", ort);
    printf("%d adet\n", kackez(dizi, 12));
    printf("%d en buyuk degerdir\n", maxsayi(dizi));
    printf("%d en kucuk sayidir", minbul(dizi));
     return 0;
}
 
C:
#include <stdio.h>

float ortbul(int dolas[])
{
    int toplam=0;

    for(int i=0;i<5;i++)
    {
        toplam+=dolas[i];
    }
    float ort=toplam/5.0;
    return ort;

}

int kackez(int dizi[], int aranan)
{
    int sayac=0;
        for(int i=0;i<5;i++)
    {
       if(dizi[i]==aranan)
       {
        ++sayac;
       }
    }   
return sayac;

}

int maxsayi(int dizi[], int max)
{
    max=dizi[0];
for(int i=0;i<5;i++)
{
    if(dizi[i] > max)
    {
        dizi[i]=max;
    }
}
return max;

}

int minbul(int dizi[],int min)
{
min=dizi[0];
for(int i=0;i<5;i++)
{
    if(dizi[i]<min){
        dizi[i]=min;
    }
}

return min;

}



int main () {
    int max,min;
 int dizi[5];
 for(int i=0;i<5;i++)
 {
    printf("%d. sayi giriniz:", (i+1));
    scanf("%d",&dizi[i]);
 }
float ort=ortbul(dizi);
printf("%.2f\n", ort);

printf("%d adet\n", kackez(dizi, 12));

printf("%d en buyuk degerdir\n", (dizi, max));

printf("%d en kucuk sayidir", (dizi, min));

    return 0;
}

Hocam böyle düzelttim ama en büyük ve en küçük değerleri verirken gelen sayılar saçmalıyor -15313546 gibi şeyler çıkıyor. Ne yapmam lazım?

Tamamdır düzelttim hatayı çok teşekkür ederim.
 
Son düzenleme:

Bu konuyu görüntüleyen kullanıcılar

Technopat Haberler

Yeni konular

Geri
Yukarı