平均数的结果哪里错了
#include
#include
using namespace std;
int main(){
int i,j,n;
char s[50][20];
int a[10];
double min[100],max[100],avg[100],t;
for(i=0;i<100;i++){
min[i]=100;
max[i]=0;
avg[i]=0;
}
cout<<"Input number of the singer:";
cin>>n;
cout<<"Input singer data:"<<endl;
for(i=0;i<n;i++){
cout<<"Input Name:";
cin>>s[i];
cout<<"Input 10 scores:"<<endl;
for(j=0;j<10;j++){
cin>>a[j];
if(a[j]>=max[i]){
max[i]=a[j];
}
if(a[j]<=min[i]){
min[i]=a[j];
}
}
}
cout<<"-----------------------------------"<<endl;
cout<<"Name Score"<<endl;
for(i=0;i<n;i++){
for(j=0;j<10;j++){
avg[i]=avg[i]+a[j];
}
avg[i]=avg[i]-max[i]-min[i];
avg[i]/=8;
cout<<left<<setw(12)<<s[i];
cout<<setiosflags(ios::fixed)<<setprecision(2)<<avg[i]<<endl;
}
return 0;
}
可参考以下代码自行修改
#include<stdio.h>
int main()
{
int i, j, temp, N, sum = 0, len, a[100];
double ave;
scanf_s("%d", &N);
for ( i = 0; i < N; i++)
scanf_s("%d", &a[i]);
len = i;
for (i = 0; i < len - 1; i++)
{
for (j = 0; j < len - 1 - i; j++)
{
if (a[j] > a[j + 1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for (i = 1; i < len - 1; i++)
sum += a[i];
ave = 1.0 * sum / (len - 2);
printf("%f", ave);
return 0;
}
你的平均分都是int型吗,没要求小数点吗
看起来好像没什么问题,你还是单步调试一下,观察下变量