求数组中大于平均值的数,但是for循环的程序运行不了,想知道原因是什么?


// //为什么运行出来求不了平均值,存在疑问?
#define  _CRT_SECURE_NO_WARNINGS
#include
 int main()
 {
     int i;
     int x;
     int cnt = 0;
     int numble[100];
     double sum = 0;
     scanf("%d", &x);
     while (x != -1)
     {
         
         numble[cnt] = x;
         sum += x;
         cnt++;
         scanf("%d", &x);
        
     }
     if (cnt > 0)
     {
         double average = sum / cnt;
         printf("平均值:%1f", average);//注意这里是浮点数


         for (i=0;iif (numble[i] > average)
             {
                 printf("%d", numble[i]);
             }

         }

     }
     
 }

想知道最下面的for循环为什么运行不了,是因为cnt没有输入到for循环里面吗?

正常,有输出,只是接着 平均值:2.0000003 ,这个 3 就是,输出平均值这句修改下:printf("平均值:%1f\n", average); ,供参考;

#define  _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
 int main()
 {
     int i;
     int x;
     int cnt = 0;
     int numble[100];
     double sum = 0;
     scanf("%d", &x);
     while (x != -1)
     {
         numble[cnt] = x;
         sum += x;
         cnt++;
         scanf("%d", &x);
     }
     if (cnt > 0)
     {
         double average = sum / cnt;
         printf("平均值:%1f\n", average);//修改

         for (i=0;i < cnt;i++)
         {
             if (numble[i] > average)
             {
                 printf("%d ", numble[i]);//修改   每个数之间加空格分隔
             }
         }
     }

 }

printf("平均值:%1f", average);
你写成了1f,应该是lf