3、while循环

本文详细介绍了C++中的while循环结构,包括其基本语法、三要素以及多个编程练习,涉及条件判断、循环范围控制、数列输出、条件运算等,旨在帮助读者理解和掌握循环在程序中的应用。
摘要由CSDN通过智能技术生成

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;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值