GYueryue 2020-01-29 23:24 采纳率: 33.3%
浏览 176

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

图片说明

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

代码里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;
    }
  • 写回答

1条回答 默认 最新

  • yinjun2024 2020-01-30 14:40
    关注

    您好,我从我的编辑器(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;
        }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 vue使用gojs,需求在link中的虚线上添加方向箭头
  • ¥15 CSS通配符清除内外边距为什么可以覆盖默认样式?
  • ¥15 SPSS分类模型实训题步骤
  • ¥15 求解决扩散模型代码问题
  • ¥15 工创大赛太阳能电动车项目零基础要学什么
  • ¥20 limma多组间分析最终p值只有一个
  • ¥15 nopCommerce开发问题
  • ¥15 torch.multiprocessing.spawn.ProcessExitedException: process 1 terminated with signal SIGKILL
  • ¥15 QuartusⅡ15.0编译项目后,output_files中的.jdi、.sld、.sof不更新怎么解决
  • ¥15 pycharm输出和导师的一样,但是标红