程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言問答 >> C語言 輸入一數組求最大 最小 方差 求改錯...求幫助啊

C語言 輸入一數組求最大 最小 方差 求改錯...求幫助啊

編輯:C語言問答

C語言 輸入一數組求最大 最小 方差 求改錯...求幫助啊

#include<stdio.h>
#include<math.h>
void main()
{
int i,n;
float a[100],p,max,min,sum;
double o,s;
printf("輸入這組數的數量:");
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
max=a[0];
min=a[0];
sum=a[0];
for(i=1;i<n;i++)
{
if(a[i]>max) max=a[i];
else if(a[i]<min) min=a[i];
sum+=a[i];
}
printf("最大值為%d,最小值為%d",max,min);
p=sum/n;
for(i=0;i<n;i++)
{
o=pow((a[i]-p),2);
s+=o;
}
printf("該數組的方差為%d\n",s);
}

最佳回答:

有幾點地方說一下:
一:定義精度數據的時候盡量保持一致,以免產生計算時不必要的錯誤
二:你的s沒有初始化
三:你定義數組a[100]的時候是定義為單精度數據,輸入的時候應該用的%f
四:方差的計算最後把所有平方加起來之後,還要除以n
五:輸出的時候用的也不是%d
我幫你改了下:
#include<stdio.h>
#include<math.h>
void main()
{
int i,n;
double o,s,a[100],p,max,min,sum;
s=0;
printf("輸入這組數的數量:");
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%lf",&a[i]);
max=a[0];
min=a[0];
sum=a[0];
for(i=1;i<n;i++)
{
if(a[i]>max) max=a[i];
else if(a[i]<min) min=a[i];
sum+=a[i];
}
printf("最大值為%.2f,最小值為%.2f",max,min);
p=sum/n;
for(i=0;i<n;i++)
{
o=pow((a[i]-p),2);
s+=o;
}
printf("該數組的方差為%.2f\n",s/n);
}

希望可以幫到你
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved