我只是一個使用C初學者所以請與我裸...問題在C數組的最小值和最大值
我做一個程序,將計算輸入到一個array
數的平均值也打印將最小和最大數字輸入array
,然後計算標準偏差。
我認爲我的平均值和標準偏差部分正常工作,但是當運行一些最終測試時,我注意到當在數組中輸入我的數字時,3以上的任何數字都不會顯示在最小數字打印中。
因此,舉例來說,我可以進入 11,12,13,14,15,16,17,18,19,20 ,我會得到20最大和3中最低。
任何想法,爲什麼我得到這個。我猜測有些東西正在限制這個變量,但是我看不到。
對不起,如果這是一個愚蠢的問題。
感謝,
#include <stdio.h>
#include <math.h>
int main(void)
{
//variables
float num[100];
float average=0;
float var=0;
float stand=0;
float sum=0;
float sum1=0;
int i=0;
int n=10;
int min;
int max;
//ask user to enter numbers
printf("Enter 10 numbers\n",n);
for(i=0; i<n; i++)
{
scanf("%f", &num[i]);
}
//find average of numbers
for(i=0; i<n; i++)
{
sum = sum + num[i];
}
average = sum /(float) n;
for(i=0; i<n; i++)
{
//if greater than max
if(num[i]>max)
{
max = num[i];
}
}
//if smaller than min
if(num[i]<min)
{
min = num[i];
}
//calculate standard deviation
for(i=0; i<n; i++)
{
sum1 = sum1 + pow((num[i] - average),2);
}
stand = sqrt(sum1/n);
//print results
printf("Average of all numbers = %.2f\n", average);
printf("Maximum number = %d\n", max);
printf("Minimum number = %d\n", min);
printf("Standard deviation = %.2f\n", stand);
system("PAUSE");
return 1;
}
您並未初始化您的最小和最大變量。您可以在讀取 – samgak
中的值後將它們初始化爲數組的第一個元素當然!非常感謝你。它現在工作正常! – NolanD