起因是因为这个题目:
AC代码:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main() {
//freopen("input.txt","r",stdin);
int a, b;
int flag = 0; //flag用于控制一次输出的空格
while (cin>>a>>b ) {
if (a * b != 0) {
if (flag == 1)
printf(" ");
else {
flag = 1;
}
printf("%d %d", a * b, b - 1);
}
}
if (flag == 0)
printf("0 0");
printf("\n");
return 0;
输入数字,以空格为分隔,因为每次输入的数字数目是不一样的,所以用while循环存储数字时,并不知道什么时候停止,所以在百度之后总结了几套方法;
1.
while(cin>>a){ char ch=getchar(); if(ch=='\n') break;}
输入一堆数字后,都在缓存区,开始编译之后,从缓存区里,一个一个的存往变量a中,ch存储空格,最后,ch存储换行符,利用if语句,结束循环;
2.while(cin>>a,a)
返回的是a的值,只要a不是零,一直循环
3.while(cin>>a)
要结束循环的时候,按ctrl+z.
4.scanf((“%d”,a)!=EOF)