这个红SP题过水,入门coders可自行食用!
老规矩,先看题目。
显然题目不难理解,就是让我们在看到424242之前,输出所有输入的数字。
这题我们讲解两种做法:一个是递归,一个是whilewhilewhile的不断输入用法!
代码
一、递归法
(注释版)
#include<bits/stdc++.h>//万能头文件
using namespace std;
int main(){//好习惯,程序从主函数读起
int a;
cin>>a;
if(a!=42) cout<<a<<endl,main();//当a不等于42时,输出a,并无限次递归调用主函数
return 0;//返回值0,程序正常退出
}
(无注释版)
#include<bits/stdc++.h>
using namespace std;
int main(){
int a;
cin>>a;
if(a!=42) cout<<a<<endl,main();
return 0;
}
二、whilewhilewhile输入法
(注释版)
#include<bits/stdc++.h>//万能头文件
using namespace std;
int main(){//好习惯,程序从主函数读起
int a;
while(cin>>a,a!=42)
/*while(cin>>a)表示不断输入a,直到程序结束即EOF(End of File)
其中用逗号连接两个不同表达式,类似于逻辑且&&*/
cout<<a<<endl;
return 0;
}
(无注释版)
#include<bits/stdc++.h>
using namespace std;
int main(){
int a;
while(cin>>a,a!=42)
cout<<a<<endl;
return 0;
}
总结
1. 不断递归调用mainmainmain(或其他函数)能达到反复执行一内容的效果。
2. while(cin>>a)while(cin>>a)while(cin>>a): 不断输入aaa直至无可读取信息。
3. while(,)while( , )while(,): 用逗号表达式连接不同的表达式,类似于逻辑且&&。