文本框里打印不出数字 代码运行不出

图片说明

这个代码运行了以后,黑色框里无法输入数字,只有字母能打出来,一打出来,黑色框就没了
是咋回事

代码里p开头代表正数,n开头代表负数要求的数据

#include <stdio.h>

int main()
{
    long long range=1e6;
    int a[range];
    double p_max=0,p_min=2147483647,p_a,n_max=-2147483648,n_min=0,n_a;
    double p_sum=0,n_sum=0;
    double p_cnt=0,n_cnt=0;

    printf("%f",p_min);
    for ( int i=0 ; i<range && scanf("%d",&a[i])!=EOF; i++ ) {
            if (a[i]>0) {
            p_cnt++;
            p_sum+=a[i];
            if (a[i]>p_max) {
                p_max = a[i];
            }else if (a[i]<p_min) {
                p_min = a[i];
                }
        }else if (a[i]<0) {
            n_cnt++;
            n_sum+=a[i];
            if (a[i]>n_max) {
                n_max = a[i];
            }else if (a[i]<n_min) {
                n_min = a[i];
                }
            }
        }

    p_a = p_sum/p_cnt;
    n_a = n_sum/n_cnt;
    printf("%.2f %.2f %.2f\n",p_max,p_min,p_a);
    printf("%.2f %.2f %.2f\n",n_max,n_min,n_a);

    return  0;
    }

您好,我从我的编辑器(Dev-c++5.11c语言模式)中运行可以输入,抱歉无法解决你的问题

但我可以指出你的BUG:

代码18行,26行,你不能使用elseif,万一更新了p_maxp_min也需要更新,你一个elseif就跳过了,所以有BUG

正确代码如下(更改了的):

#include <stdio.h>

int main()
{
    long long range=1e6;
    int a[range];
    double p_max=0,p_min=2147483647,p_a,n_max=-2147483648,n_min=0,n_a;
    double p_sum=0,n_sum=0;
    double p_cnt=0,n_cnt=0;

    for ( int i=0 ; i<range && scanf("%d",&a[i])!=EOF; i++ ) {
            if (a[i]>0) {
            p_cnt++;
            p_sum+=a[i];
            if (a[i]>p_max) {
                p_max = a[i];
            }if (a[i]<p_min) {
                p_min = a[i];
                }
        }else if (a[i]<0) {
            n_cnt++;
            n_sum+=a[i];
            if (a[i]>n_max) {
                n_max = a[i];
            }if (a[i]<n_min) {
                n_min = a[i];
                }
            }
        }

    p_a = p_sum/p_cnt;
    n_a = n_sum/n_cnt;
    printf("%.2f %.2f %.2f\n",p_max,p_min,p_a);
    printf("%.2f %.2f %.2f\n",n_max,n_min,n_a);

    return  0;
    }