一个关于数组的程序,初学者想了半天不理解

这两个是关于记录数的平均数,并且输出大于平均数的数,第二个程序使用的数组用了变量,但是输出结果就却没有了大于平均数的数。求大佬帮帮忙。

img

img

img

img

第三张图中11行,不能用变量作为数组的大小,要动态分配

#include<stdio.h>
#include<stdlib.h>
int main()
{
int x;
double sum=0;
int cnt=0;
int t;
printf("请输入数字的量");
scanf("%d",&t);
if(t>0){
int *number = malloc(t * sizeof(int));
printf("Please");
scanf("%d",&x);
while(x!=-1){
number[cnt]=x;
sum+=x;
cnt++;
scanf("%d",&x);
}
printf("%f",sum/cnt);
int i;
for(i=0;i>cnt;i++){
if(number[i]>sum/cnt){
printf("%d",number[i]);
}
}
}
return 0;
}