Please input two integers 与The larger number is ?

#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;
else
cout << "The larger number is " << b << endl;
} while (a = b);
return 0;
}
执行之后如果输入的不是整数就会重复输出Please input two integers 与The larger number is
这是为啥

森林海
浏览 169回答 3
3回答

倚天杖

在C++中,while函数有两种使用方式:1、while(条件,起始条件,i++)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{循环函数体;}----适用判断条件很明确,而且函数的执行次数也非常明确的情形----先判断条件,然后执行循环体2、do&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{函数体;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i++;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(条件);----适用判断条件明确,但函数执行次数不明确的情形----先执行循环体,再判断条件是否可以继续执行分别举例,通过while和do-while来计算 1+2+3+……+100:

Cats萌萌

注释的地方改一下就可以了,12345678910111213141516171819202122232425262728#include&nbsp;<iostream>using&nbsp;namespace&nbsp;std;int&nbsp;main(){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;a,&nbsp;b;//定义改一下&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;do&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;<<&nbsp;"Please&nbsp;input&nbsp;two&nbsp;integers&nbsp;:";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cin&nbsp;>>&nbsp;a&nbsp;>>&nbsp;b;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((int)a&nbsp;!=&nbsp;a&nbsp;||&nbsp;(int)b&nbsp;!=&nbsp;b)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;<<&nbsp;"Aren't&nbsp;you&nbsp;input&nbsp;two&nbsp;integers,please&nbsp;try&nbsp;again"&nbsp;<<&nbsp;endl;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;continue;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;break;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(a&nbsp;>&nbsp;b)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;<<&nbsp;"The&nbsp;larger&nbsp;number&nbsp;is&nbsp;"&nbsp;<<&nbsp;a&nbsp;<<&nbsp;endl;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;<<&nbsp;"The&nbsp;larger&nbsp;number&nbsp;is&nbsp;"&nbsp;<<&nbsp;b&nbsp;<<&nbsp;endl;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;while&nbsp;(a&nbsp;==&nbsp;b);//改成==&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;system("pause");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;}虽然是整数,但是你输入可能是浮点型的,所以用double类型的作为输入

Qyouu

if ((int)a != a || (int)b != b)看起来实际想要的是检查输入是否正确,那么可以用if (!cin)来判断输入流状态,然后用cin.clear()清除错误标记,cin.ignore(1024,'\n')丢弃错误的字符……
打开App,查看更多内容
随时随地看视频慕课网APP