我在C以下代碼:函數返回值的垃圾
#include <stdio.h>
// Global variables :
int i;
int x[10];
int Nmax;
int sum;
// Functions used :
void Summation();
int Average(float avg); // This function will return avg
int main()
{
float avg;
printf("Mention how many numbers to be added\n");
scanf("%d",&Nmax);
printf("Enter %d numbers\n",Nmax);
for (i=0; i<Nmax; i++){
scanf("%d",&x[i]);
}
Summation();
Average(avg);
printf("%d %d %f\n",Nmax,sum,avg);
printf("Average = %.2f\n",avg);
return 0;
}
// Summation :
void Summation()
{
sum=0;
for (i=0; i<Nmax; i++) {
sum=sum+x[i];
}
printf("Sum of them = %d\n",sum);
}
// Average
int Average(float avg)
{
avg=(float)sum/(float)Nmax;
return avg;
}
不知何故功能Average
沒有返回預期的平均值。 而是顯示垃圾值。
一個典型的輸入/輸出:
Mention how many numbers to be added
4
Enter 4 numbers
1 2 3 4
Sum of them = 10
4 10 1637156136366093893632.000000
Average = 1637156136366093893632.00
什麼錯嗎?希望我在這裏不需要指針或者我需要嗎?
請編寫您的代碼,以便人類可以理解,如果您不知道自己在做什麼,也不要使用全局變量。 –
你的'平均'函數沒有sum或NMax作爲輸入參數。 – rghome
@rghome它不需要它們,因爲它們是全局變量。 –