当前位置:  开发笔记 > 编程语言 > 正文

c ++ assert()如何创建无限循环?

如何解决《c++assert()如何创建无限循环?》经验,为你挑选了1个好方法。

机器人评判吮吸!只有在删除以下代码块后,我才被UVA接受:

cin >> ntc;
/* extract newline from previous read */
char dummy(0);
cin.get(dummy);
assert( '\n'==dummy );
/* newline extract completes */

替换为:

cin >> ntc;
getline( cin, inputN ); /* extract remaining '\n' */

在更换之前,UVA的光荣机器人法官会做出判决:

您的提交....已失败,判决超出时限.

您的程序使用的CPU时间超过了此问题所允许的时间.这意味着您的算法速度不够快或进入无限循环.

更换后程序需要0.052秒才能运行!

    它以什么方式与被替换的代码相关?

    有没有关于UVA机器人判断与其他编译器有何不同的文件?因此,我知道在线评判可用的功能/方法.

我用MinGW.



1> atzz..:

断言无法创建无限循环.

我的猜测是,当断言触发时,操作系统会显示一个即时调试提示("程序中发生错误... [调试] [取消]").(对不起,我现在没有运行Windows,因此无法检查实际的措辞).由于没有人按下任何一个按钮并且该过程没有终止,直到有人这样做,机器人认为该程序仍在运行.

我认为这是UVA设置中的错误.必须禁用即时调试.


@TheMadman - 实际上与`char dummy = 0;`或`char dummy ='\ 0';`相同.
推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有