z在数组num的10个数中求平均值ave,并在数组中找出与ave相差最小s的元素。将结果输出。我这个答案错了,怎么回事

#include<stdio.h> 
#include<math.h>
void main()

{int i,num[10];
float ave=0,sum=0,min;
printf("请输入10个数,亲\n");
for(i=0;i<10;i++)
scanf("%d",&num[i]);
sum=num[0];                                     
for(i=1;i<10;i++)
sum+=num[i];
ave=sum/10.0;min=abs(ave-num[0]);
for(i=0;i<10;i++)

if(min>abs(ave-num[i]))
   min=abs(ave-num[i])  ;  
printf("%.2f%d",min,ave);


}

#include<stdio.h>
#include<math.h>
int main() {
    int i,num[10];
    float ave=0,sum=0,min,p;
    printf("请输入10个数,亲\n");
    for(i=0; i<10; i++)
        scanf("%d",&num[i]);
    sum=num[0];
    for(i=1; i<10; i++)
        sum+=num[i];
    ave=sum/10.0;
    min=abs(ave-num[0]);
    p=num[0];
    for(i=1; i<10; i++){
        if(min>abs(ave-num[i])){
            min=abs(ave-num[i]);
            p=num[i];
        }
    }
    printf("%.2f %d",ave,p);
    return 0;
}


```c++
#include<stdio.h>
#include<math.h>
int main() {
    int i,num[10];
    float ave=0,sum=0,min,p;
    printf("请输入10个数,亲\n");
    for(i=0; i<10; i++)
        scanf("%d",&num[i]);
    sum=num[0];
    for(i=1; i<10; i++)
        sum+=num[i];
    ave=sum/10.0;
    min=abs(ave-num[0]);
    p=num[0];
    for(i=1; i<10; i++){
        if(min>abs(ave-num[i])){
            min=abs(ave-num[i]);
            p=num[i];
        }
    }
    printf("%.2f %d",ave,p);
    return 0;
}
 


```

你的,改为最小值时也是和我一样的答案,为0

但是p=0,而不是等于四