结果让人很意外很痛苦的C语言,不知道怎么会不是我想要的结果。希望各位路过的人看看!!!

#include
void main()
{
const int k=8;
int x[k],y[k]={0},i,j,sum=0,n=0;
float aver=0;
printf("input 8 numbers:\n");
for(i=0;i<8;i++)
scanf("%d",&x[i]);
for(i=0;i<8;i++)
{
sum+=x[i];
}
aver=sum/8.0;

for(i=0;i<8;i++)
    if(x[i]>aver)
        n++;
for(i=0;i<8;i++)
    for(j=0;j<=i;j++)
        if(x[i]!=y[j])
         y[j]=x[i];
printf("aver=%d,n=%d\n",aver,n);
printf("y[k]=\n");
for(i=0;i<8;i++)
printf("%d\n",y[i]);

}

**printf("aver=%f,n=%d\n",aver,n); //注意输入的格式。。其它测试没有错误。。
**

int main()
{
const int k=8;
int x[k],y[k]={0},i,j,sum=0,n=0;
float aver=0;
printf("input 8 numbers:\n");
for(i=0;i {
scanf("%d",&x[i]);
sum += x[i];
}
aver = sum/8.0;
for(i=0;i {
if(x[i]>aver)
{
n++;
}
}
printf("aver=%f,n=%d\n",aver,n);
for(i=0;i<8;i++)
{
for(j=0;j<=i;j++)
{
if(x[i]!=y[j])
{
y[j]=x[i];
}
}
}

printf("y[k]=\n");
for(i=0;i<8;i++)
printf("%d\n",y[i]);
return 0;
}

定义的常变量k不能成为数组的长度,直接写成8,就行了,另外,平均值最好定义成double型的