1、基本结构:
while(循环条件){ if(判断条件){
当条件成立执行; 对比if, 如果条件成立执行
} }
eg:int i=1 int i=1;
while(i<=10){ if(x<=10){
cout<<i<<endl; cout<<x<<endl;
i+=1; }
}
2、while循环的三要素:初始值、循环条件、让循环停下来的方法。
理解的关键要记得这三个问题能不能理解?
问题1:如果程序没有i+=1,会输出什么结果,为什么?
答:死循环,i的值没有变,永远是1.
问题2:如果while循环结束,输出i值,会输出几?为什么?
答:11.
问题3:如果将循环内部的cout<<i<<endl和i++互换位置,i输出什么结果,为什么?
答:2-11,
练习:
1、请输出10-1之间所有的数
#include<iostream>
using namespace std;
int main(){
int n;
n=11;
while(n>=2){
n-=1;
cout<<n<<endl;
}
return 0;
}
2、请输出50-100之间所有的奇数。
#include<iostream>
using namespace std;
int main(){
int n;
n=50;
while(n<=100){
if(n%2==1){
cout<<n<<endl;
}
n+=1;
}
return 0;
}
3、请输出1~n(n从键盘读入)之间所有是2的倍数但不是3的倍数的数,由小到大输出?
#include<iostream>
using namespace std;
int main(){
int i,n;
i=1;
cout<<"请输入一个整数:";
cin>>n;
while(i<=n){
if(i%2==0&&i%3!=0){
cout<<i<<endl;
}
i+=1;
}
return 0;
}
4、请求出1~n之间所有满足2的倍数但不是3的倍数的数有多少个,总和是多少。
#include<iostream>
using namespace std;
int main(){
int i,n,count,sum;
i=1,count=0,sum=0;
cout<<"请输入一个整数:";
cin>>n;
while(i<=n){
if(i%2==0&&i%3!=0){
count++;
sum=sum+i;
}
i+=1;
}
cout<<"满足2的倍数但不是3的倍数的数有:"<<count<<"个"<<endl;
cout<<"总和为:"<<sum<<endl;
return 0;
}
5、
#include<iostream>
using namespace std;
int main(){
int i,n,s;
i=1,s=1;
cin>>n;
while(i<=n){
s*=i;
i++;
}
cout<<s;
return 0;
}
6、
#include<iostream>
using namespace std;
int main(){
int n,count,ge,shi,bai;
n=1,count=0;
while(n<1000){
ge=n%10,shi=(n/10)%10,bai=n/100;
if(ge==3||shi==3||bai==3){
count++;
}
n++;
}
cout<<count;
return 0;
}
7、
#include<iostream>
using namespace std;
int main(){
int i,ge,shi,bai;
i=0;
while(i<999){
ge=i%10;
shi=(i/10)%10;
bai=i/100;
if(i%3==0&&(ge==5||shi==5||bai==5)){
cout<<i<<endl;
}
i++;
}
return 0;
}
8、
#include <iostream>
using namespace std;
int main()
{
int i=1,n,sum=0;
cin>>n;
while(i<=n){
if(i%3==2&&i%5==3&&i%7==2){
sum++;
}
i++;
}
cout<<sum;
return 0;
}
9、
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
int n;
double s=0;
cin>>n;
for(int i=1;i<=n;i++){
s=s+1.0/i;
}
cout<<fixed<<setprecision(3)<<s;
return 0;
}
10、
#include<iostream>
using namespace std;
int main(){
int ge,shi,bai;
for(int i=100;i<=998;i++){
ge=i%10,shi=(i/10)%10,bai=i/100;
if((ge*ge*ge)+(shi*shi*shi)+(bai*bai*bai)==i){
cout<<i<<endl;
}
}
return 0;
}
11、
#include<iostream>
using namespace std;
int main(){
int n,sum=0;
cin>>n;
for(int i=1;i<=n;i++){
sum=sum+(i*i);
}
cout<<sum<<endl;
return 0;
}
12、
#include<iostream>
using namespace std;
int main(){
int n,i=1,sum=0;
cin>>n;
while(i<=n){
sum=sum+i;
i+=2;
}
cout<<sum<<endl;
return 0;
}
13、
#include<iostream>
using namespace std;
int main(){
int i=1,n,sum=0;
cin>>n;
while(i<=n){
sum=sum+i;
i++;
}
cout<<sum<<endl;
return 0;
}
14、
#include<iostream>
using namespace std;
int main(){
int i=1,sum=0;
while(i<=100){
sum=sum+i;
i=i+3;
}
cout<<sum<<endl;
return 0;
}
15、
#include<iostream>
using namespace std;
int main(){
int i=1;
while(i<=500){
if(i%3==2&&i%5==3&&i%7==2){
cout<<i<<endl;
}
i++;
}
return 0;
}
16、
#include<iostream>
using namespace std;
int main(){
int i=1000,ge,shi,bai,qian,a,b;//a表示第一个数,b表示第二个数。
while(i<=9999){
ge=i%10,shi=(i/10)%10,bai=(i/100)%10,qian=i/1000;
a=bai+qian*10,b=ge+shi*10;
if((a+b)*(a+b)==i){
cout<<i<<endl;
}
i++;
}
return 0;
}