簡體   English   中英

這是使用函數在 50 個元素的數組中查找平均值的 ac 代碼

[英]This is a c code to find the average in an array of 50 elements using a function

#include <stdio.h>
#include <stdlib.h>
float Findaverage(float n,float numbers[]) {
    float sum = 0;
    for (int j = 0; j < n; j++) {
        sum += numbers[j];
    }
    printf("The average number of the array is: %f", sum/n);

}




int main() {
    int sum = 0;
    float numbers[50];
    float average;
    printf("Enter 50 elements: ");
    // taking input and storing it in an array
    for(int i = 0; i < 50; ++i) {
        scanf("%f", &numbers[i]);
    }
    average = Findaverage(50,numbers[50]);
    printf("\nThe average number of the array is: %f", average );

    return 0;
}

輸出給出錯誤“將‘float’傳遞給不兼容類型‘float *’的參數;使用&獲取地址”。 為什么是這樣?

對於初學者來說,函數Findaverage什么都不返回。

您需要將此語句添加到函數中

return sum / n;

並且第一個參數應具有整數類型而不是float類型。

float Findaverage(float n,float numbers[]) {
                  ^^^^^

其次在這個函數調用中

average = Findaverage(50,numbers[50]);

具有類型float而不是類型float *的參數numbers[50]無效。 你需要寫

average = Findaverage(50,numbers);

可以通過以下方式聲明和定義該函數

double Findaverage( const float numbers[], size_t n ) 
{
    double sum = 0.0;

    for ( size_t i = 0; i < n; i++ ) 
    {
        sum += numbers[i];
    }

    return n == 0 ? 0.0 : sum / n;
}

該函數可以像這樣調用

double average = Findaverage( numbers, sizeof( numbers ) / sizeof( *numbers ) );

改變

average = Findaverage(50,numbers[50]);

average = Findaverage(50,numbers);

numbers[50]指的是單個數組元素,而不是整個數組。 它也是數組末尾的一個(索引從049 )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM