初學C代碼在這裏,我想弄清楚我的代碼究竟出了什麼問題。我使用兩個函數來計算用戶輸入的數組的總和和平均值。數組的大小由用戶決定。我嘗試查找示例,但沒有找到許多有用的提示。更可能的是,我只是不理解我做錯了什麼。任何人都可以請給我一些建設性的批評和指導。謝謝!在這裏使用用戶輸入和函數計算數組的總和和平均值
#include<stdio.h>
/*function declarations*/
int addNumbers(int number[]);
float avgNumbers(int sum, int n);
int main(){
int i, n, number[100], sum, result;
float average;
printf("How many numbers do you want to enter?\n");
scanf("%d",&n);
for (i = 0; i < n ; i++)
{
printf("Enter the numbers %d:\n", i+1);
scanf("%d",&number[i]);
}
for (i = 0; i < n ; i++)
{
sum = 0;
sum = addNumbers(&number);
average = avgNumbers(sum,n);
}
printf("Sum: %d\n",sum);
printf("Average: %f\n",average);
return 0;
}
/*function returning the sum of the numbers*/
int addNumbers(int number[])
{
int i, n, sum;
for (i = 0; i < n ; i++)
sum += number[i];
return sum;
}
/*function returning the average of the numbers*/
float avgNumbers(int sum, int n)
{
average = sum/n
return average;
}
的問題很可能是,當雙方的爭論'sum'和'N'是'int's,avgNumbers確實整數除法,四捨五入。你必須將參數中的任何一個轉換爲'float',即'(float)sum/n',而不是使用'double'作爲平均值,因爲並非所有的int範圍都被float所覆蓋。 –
而且,你不會將'n'作爲參數傳遞給'addNumbers'。您遇到一些編譯錯誤 - 需要將錯誤添加到問題中 –
請閱讀[mcve]頁面 –