我有一個簡短的程序,應該將一個浮點值數組傳遞給三個不同的函數,以返回總和,平均值和最小值。我不明白爲什麼函數返回0值(或我錯誤地傳遞數組?)C:爲什麼我的函數返回0值?
我敢肯定,我錯過了一些簡單而基本的東西,但一直盯着這太長時間,真的看不到有什麼問題。
欣賞任何輸入。
#include <stdio.h>
#define NUM 5
float array_sum (float arr[]);
float array_avg (float arr[]);
float array_min (float arr[]);
int main()
{
float array_nums[NUM] = {1.23, 4.56, 7.89, 10.1, 2.34};
float arr_sum;
float arr_avg;
float arr_min;
arr_sum = array_sum(array_nums);
arr_avg = array_avg(array_nums);
arr_min = array_min(array_nums);
printf("\nThe sum of the elements in the array is %f.\n"), arr_sum;
printf("The average of the elements in the array is %f.\n"), arr_avg;
printf("The smallest value in the array is %f.\n\n"), arr_min;
return (0);
}
float array_sum (float arr[])
{
float sum = 0;
int i;
for (i = 0; i < NUM; i++)
{
sum += arr[i];
}
return (sum);
}
float array_avg (float arr[])
{
int i;
float avg;
float sum = 0;
for (i = 0; i < NUM; ++i)
{
sum += arr[i];
}
avg = sum/NUM;
return (avg);
}
float array_min (float arr[])
{
int i;
float min = arr[0];
for (i=0; i < NUM; ++i)
{
if (arr[i] < min)
{
min = arr[i];
}
}
return (min);
}
使用像gcc -Wall這樣體面的編譯器,它會告訴你,你的printfs缺乏足夠的格式參數。我想它也會告訴你,你正在計算表達式而沒有任何效果。 –