你do一开始就给数组赋值x,问题是这时候x还没有输入啊
把while中的scanf语句放到循环的第一行,先输入x,再给数组赋值
另外平均值计算也是错误的,num/cnt是两个整数相除,是整除,没有小数。改成num*1.0/cnt;
把scanf("%d",&x);放在do循环的第一条语句即可。
因为一开始x没有值。
#include <stdio.h>
#include <math.h>
int main()
{
int n;
scanf("%d" , &n);
if(n<=0||n>10){
printf("Invalid.\n");
}
else{
int a[n] , i , cnt=0 ;
double sum=0;
for(i=0 ; i<n ; i++){
scanf("%d" , &a[i]);
sum+=a[i];
}
sum=1.0*sum/n;
printf("%.2lf\n" , sum);
int b[n];
for(i=0 ; i<n ; i++){
if(a[i]>sum){
b[cnt++]=a[i];
}
}
if(cnt==0){
printf("\n");
}
else{
for(i=0 ; i<cnt ; i++){
printf("%d " , b[i]);
}
}
}
return 0;
}