题目:
知识点for me:
该题的输入并非是按回车后数据输入完毕也不是给定数据长度,而是输入到文件末尾。可以有以下三种写法:
(1)while(cin>>a)
(2)while(scanf("%d", n) != EOF)
(3)while(~scanf("%d", &n))
cin>>a或者scanf("%d", &n)代表获取键盘输入的值赋值给变量a,将其置于while的循环条件内,将会一直测试输入流是否正常,EOF表示文件末尾,因为EOF⼀般为-1,所以~按位取反-1正好是0,就可以退出循环了所以也写成上面的第三种。如果输入流正常,就会继续循环获取键盘值,如果输入流错误,或者达到文件末尾(在windows下按Ctrl+Z,在Linux下按Ctrl+D),该循环就会终止。
上代码:
#include <iostream> #include <vector> using namespace std; int main() { int a,b,flag=0; while(cin>>a>>b) { if(a*b==0) break; if(flag==1) cout<<" "; cout<<a*b<<" "<<b-1; flag=1; } if(flag==0) cout<<"0 0"; return 0; }