我只是一个使用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