第3章C/C++流程控制

循环语句

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

for循环语句

【例题3.14】 求1+2+3+…+100。使用for语句实现循环。

#include<bits/stdc++.h>
using namespace std;

int main(){
	int i, sum;
	sum = 0;
	for(i=1;i<=100;i++)
	{
		sum += i;
	}
	cout<<"sum="<<sum<<endl;
	return 0;
}

【例题3.15】 打印出所有“水仙花数”。

#include<bits/stdc++.h>
using namespace std;

int main(){
	
	int a, b, c;
	for(int i=100; i<1000; i++)
	{
		a = i%10;
		b = (i/10)%10;
		c = i/100;
		if(a*a*a + b*b*b + c*c*c == i)
		{
			cout<<i<<'\t';
		}
		
	 } 
	 cout<<endl;
	return 0;
}

【例题3.16】 输出一个金字塔图形。

#include<bits/stdc++.h>
using namespace std;

int main(){
	
	int i, j;
	for(i=1; i<=10; i++)
	{
		cout<<setw(20-i);
		for(j=1;j<2*i;j++)
		{
			cout<<"*";
		}
		cout<<endl;
	 }  
	return 0;
}

跳转语句

break语句

【3.20】输入若干个整数,计算已输入整数之和,直到输入负数为止。
#include<bits/stdc++.h>
using namespace std;

int main(){
	int i, n, sum;
	for(i=0;i<50;i++)
	{
		cout<<"\n Imput number:";
		cin>>n;
		if(n<0)
		{
			break;
	    }
	    sum += n;
	}
	cout<<"sum="<<sum<<endl;
	return 0;
}

continue语句

【3.21】输出0-100之间所有不能被3整除的数。
#include<bits/stdc++.h>
using namespace std;

int main(){
	int i;
	for(i=0;i<=100;i++)
	{
		if (i%3==0)
			continue;
		cout<<i<<" ";
	}
	cout<<endl;

	return 0;
}

【例3.22】求数列2/3、4/5、6/7,。。。前30项目的和。

#include<bits/stdc++.h>
using namespace std;

int main(){
	double sum = 0;
	for (int i=1; i<=30; i++)
	{
		sum += (2.0*i)/(2.0*i+1);
	}
	cout<<"sum = "<<sum<<endl;	
	return 0;
}

【例3.23】求自然对数e的近似值。其中e=1+1/1!+1/2!+1/3!..

#include<bits/stdc++.h>
using namespace std;

int main(){
	double t, sum = 1;
	int i = 1;
	double p = 1;
	do{
		p = p * i;
		t = 1/p;
		sum += t;
		i++;
	}while(t>0.00001);
	cout<<"sum = "<<sum<<endl;	
	return 0;
}

【例3.24】求区间[100,200]内10个随机整数的最大数、最小数。



练习题四

1. 输入一个整数n,判断其能否同时被5和7整除。

#include<bits/stdc++.h>
using namespace std;

int main(){
	int n;
	cin>>n;
	if (n%5 == 0 || n%7 == 0){
		cout<<n<<"能同时被5和7整除"<<endl; 
	}else{
		cout<<n<<"不能同时被5和7整除"<<endl; 
	}	
	return 0;
}

2. 输入一个百分制的成绩。

#include<bits/stdc++.h>
using namespace std;

int main(){
	int score;
	cin>>score;
	if(score>=90){
		cout<<"A"<<endl;
	}else if(80<=score && score<90){
		cout<<"B"<<endl;
	}else if(70<=score && score<80){
		cout<<"C"<<endl;
	}else if(60<=score && score<70){
		cout<<"D"<<endl;
	}else{
		cout<<"E"<<endl;
	}
	
	return 0;
}

3. 某百货公司为了促销。

#include<bits/stdc++.h>
using namespace std;

int main(){
	int price;
	cout<<"请输入购物金额";
	cin>> price;
	int range;
	if (price>=3000){
		range = 3;
	} else if (price>=2000){
		range = 2;
	} else if (price>=1000){
		range = 1;
	}else{
		range = 0;
	}
	double discouted_price;
	switch (range){
	 	case 3:
	 		discouted_price = price * 0.5;
	 		break;
	 	case 2:
	 		discouted_price = price * 0.9;
	 		break;
	 	case 1:
	 		discouted_price = price * 0.95;
	 		break;
	 	default:
	 		discouted_price = price;
	 		break;
	}
	cout<<"优惠后的价格为:"<<discouted_price<<endl; 
	return 0;
}

4.求一个整数n的阶乘,并按格式输出。

#include<bits/stdc++.h>
using namespace std;

int main(){
	int n;
	cin>>n;
	int p = 1;
	for (int i=1; i<=n; i++){
		p *= i;
		cout<<setw(6)<<i<<":"<<setw(6)<< p<<setw(6);
		if (i%3==0){
			cout<<endl;
		}
	}
	
	return 0;
}

5.求阶乘相加。

#include<bits/stdc++.h>
using namespace std;

int main(){
	int i, n, sum=0;
	for (i=1; i<=5; i++)
	{
		n = 2 * i -1;
		cout<<"n="<<n<<"  ";
		int p = 1;
		for (int j=1; j<=n; j++){
			p *=  j;
		}
		cout<<p<<endl;
		sum += p;
	}
	cout<<"sum="<<sum<<endl;
	return 0;
}

6.计算下列公式中的S的值。

#include<bits/stdc++.h>
using namespace std;

int main(){
	int i, n, sum=1;
	cout<<"Please input n=";
	cin>>n;
	int tmp = 1;
	for (i=2; i<=n; i++){
		tmp += i;
		sum += tmp;
	}
	cout<<"sum="<<sum<<endl;
	return 0;
}
#include<bits/stdc++.h>
using namespace std;

int main(){
	int i, n, sum=0;
	cout<<"Please input n=";
	cin>>n;
	for (i=1; i<=n; i++){
		sum += (10*i)+2;
	}

	cout<<"sum="<<sum<<endl;
	return 0;
}
#include<bits/stdc++.h>
using namespace std;

int main(){
	int i, n, sum=0;
	cout<<"Please input n=";
	cin>>n;
	int p = -1;
	for (i=1; i<=n; i++){
		p *= -1; 
		sum += p * i * (i+1);
		cout<<"i=1 "<<p * i * (i+1)<<endl; 
	}

	cout<<"sum="<<sum<<endl;
	return 0;
}

7.大马中马和小马。

#include<bits/stdc++.h>
using namespace std;

int main(){
	int big, medium, small;
	for (big=0; big<=33; big++){
		for (medium=0; medium<=50; medium++){
			small = 100- big - medium;
			if (big * 3+ medium*2 +0.5*small == 100){
				cout<<"大马="<<big<<"  中马="<<medium<<"  小马="<<small<<endl; 
			}
		}
	}

	return 0;
}

8.有一个数列。

#include<bits/stdc++.h>
using namespace std;

int main(){
	int i=4;
	double tmp;
	int a =1, b=2, c=3;
	do{
		tmp = (a+b+c) / 2; 
		a = b;
		b = c;
		c = tmp;
		i++;
	}while(tmp<=1200);
	cout<<"i="<<i<<endl;
	return 0;
}

9.同构数。

#include<bits/stdc++.h>
using namespace std;

int main(){
	int i;
	for(i=1; i<=100; i++)
	{
		int square = i*i;
		if (square%10 == i||square%100 == i||square%1000==i){
			cout<<i<<"  ";
		}	
	}
	cout<< endl;
	return 0;
}

10.猴子吃桃。

#include<bits/stdc++.h>
using namespace std;

int main(){
	int i;
	int sum = 1;
	for (i=10; i>1; i--)
	{
		sum +=1;
		sum *=2;	
	}
	cout<<"sum="<<sum<<endl;
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牛魔小丸子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值