为了账号安全,请及时绑定邮箱和手机立即绑定

重复:Please input two integers 与The larger number is

重复:Please input two integers 与The larger number is

人到中年有点甜 2022-06-02 07:03:53
#include "stdafx.h"#include <iostream>using namespace std;int _tmain(int argc, _TCHAR* argv[]){int a, b;do{while (1){cout << "Please input two integers :";cin >> a >> b;if ((int)a != a || (int)b != b){cout << "Aren't you input two integers,please try again" << endl;continue;}else break;}if (a > b)cout << "The larger number is " << a << endl;elsecout << "The larger number is " << b << endl;} while (a = b);return 0;}执行之后如果输入的不是整数就会重复输出Please input two integers 与The larger number is这是为啥
查看完整描述

3 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

if ((int)a != a || (int)b != b)
看起来实际想要的是检查输入是否正确,那么可以用if (!cin)来判断输入流状态,然后用cin.clear()清除错误标记,cin.ignore(1024,'\n')丢弃错误的字符……

查看完整回答
反对 回复 2022-06-06
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

在C++中,while函数有两种使用方式:

1、while(条件,起始条件,i++)

     {循环函数体;}

----适用判断条件很明确,而且函数的执行次数也非常明确的情形

----先判断条件,然后执行循环体

2、do

     {函数体;

      i++;}

     while (条件);

----适用判断条件明确,但函数执行次数不明确的情形

----先执行循环体,再判断条件是否可以继续执行

分别举例,通过while和do-while来计算 1+2+3+……+100:

 


查看完整回答
反对 回复 2022-06-06
?
慕沐林林

TA贡献2016条经验 获得超9个赞

首先输入时,ab都被声明为 int
所以就算你输入的不是 int,也会自动强转为int.
所以无论如何,if ((int)a != a || (int)b != b) 都不成立,
会直接执行else break;
然后输出The larger number is
而while中你错写成了赋值=号,因此while一直成立,便会一直循环了.... 应改成==

查看完整回答
反对 回复 2022-06-06
  • 3 回答
  • 0 关注
  • 252 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号