ζ霱徕° 2023-01-03 22:49 采纳率: 60%
浏览 19
已结题

请问为什么会出现这种情况

问题遇到的现象和发生背景

为什么我这里用const int N = 1e7后不能输入,而1e6却是正常的

遇到的现象和发生背景,请写出第一个错误信息
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
#include<iostream>
#include<cmath>
using namespace std;
const int N=1e6+10;
int main()
{
    char x,ch[N];
    int k,a=0,b=0;
    while(cin>>x){
        if(x=='E')break;
        ch[k++]=x;
    }
    for(int i=0;i<k;i++){
        if(ch[i]=='W')a++;
        else if(ch[i]=='L')b++;
        if(max(a,b)>=11&&fabs(a-b)>=2){
        cout<<a<<":"<<b<<endl;
        a=b=0;
        }
    }
    cout<<a<<":"<<b<<endl;
    puts("\n");
    a=b=0;
    for(int i=0;i<k;i++){
        if(ch[i]=='W')a++;
        else if(ch[i]=='L')b++;
        if(max(a,b)>=21&&fabs(a-b)>=2){
        cout<<a<<":"<<b<<endl;
        a=b=0;
        }
    }
    cout<<a<<":"<<b<<endl;
    return 0;
 } 

运行结果及详细报错内容
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%

const int N=1e7一直无法输入,改成1e6后就正常了,是不是const有使用边界?

我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”
  • 写回答

2条回答 默认 最新

  • ShowMeAI 2023-01-04 00:33
    关注

    是的,const int 的使用边界是受限于编译器和计算机系统的,具体取决于系统的内存大小和编译器对常量表达式的支持情况。

    • 代码中使用的是 const int N = 1e7,这个常量表达式的值为10000000。如果编译器不支持高精度数字,或者计算机系统的内存不足以存储这么大的常量,那么就会导致编译失败或者运行时错误。
    • 将常量表达式的值改为 1e6 后,对应的常量值为 1000000,这个值在大多数系统中都是可以支持的。因此,程序在使用 1e6 时正常运行。

    综上所述,在使用 const int 常量时,应该注意其取值不能超过编译器和计算机系统所能支持的范围。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月12日
  • 已采纳回答 1月4日
  • 创建了问题 1月3日

悬赏问题

  • ¥15 用hfss做微带贴片阵列天线的时候分析设置有问题
  • ¥50 我撰写的python爬虫爬不了 要爬的网址有反爬机制
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥120 计算机网络的新校区组网设计
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等