C++ 基础笔记(入门到循环)

news2025/1/22 8:13:41

目录

1.认识C++ —— 初窥门径

一、C++程序框架(8分) 

二、语言规范(16分)

三、DEV-C++软件(下载链接)

四、计算机快捷键

五、输入输出的应用

2.变量与赋值 —— 脚踏实地

2.1 变量类型

2.2 变量类型与变量名

2.3 变量的命名规则

3.运算——孜孜不倦

3.1算术运算符:

3.2 比较运算符:

3.3逻辑运算符:

3.4赋值运算符:

3.5练 变量赋值运算

算术运算

逻辑运算&&关系运算

布尔应用

三目运算

4.数位分离 —— 道法自然

5.求时间—— 斗转星移

6.类型与转换 —— 默转潜移

6.1类型范围

7. if条件判断语句 —— 登高望远

7.1 条件判断语句 

7.2条件判断应用

7.3 if嵌套语句

8. 字符ASCII —— 独具慧眼

9.while循环——千回百转

9.3 break与continue

 10.for循环—— 循序渐进

10.1 for循环初认识

10.2 for循环应用

1.字符与循环

2.数与循环


1.认识C++ —— 初窥门径

一、C++程序框架(8分) 

1、导入库                                    

2、使用标准命名空间                               

3、主函数                                        

4、程序结束                                    

二、语言规范(16分)

1、单行注释                    全部注释(快捷键)                  

2、多行注释                  

3、输出语句                 

4、换行语句                  

5、输入语句                 

6、代码缩进按键名字                             

7、程序文件名的后缀                             

8、编译运行后产生的应用程序文件名后缀            


三、DEV-C++软件(下载链接)

https://pan.baidu.com/s/1Q37eWfmsAWersprPylRFEA?pwd=poruhttps://pan.baidu.com/s/1Q37eWfmsAWersprPylRFEA?pwd=poru

1. 新建 源代码:Ctrl+N

2. 打开文件(Open): Ctrl+O

3. 保存程序: Save Ctrl+S

4. 另存程序: Save as

5. 运行程序: 

编译[F9] + 运行[F10]

编译运行[F11]

四、计算机快捷键

复制:Ctrl+C

粘贴:Ctrl+V

全选:Ctrl+A

剪切:Ctrl+X

撤销:Ctrl+Z

保存:Ctrl+S


五、输入输出的应用

cout<<"面积:"<<15*10;//输出结果不换行

cout<<"周长:"<<(15+10)*2<<endl; //输出结果换行

cout<<endl<<"---------------------"<<endl;

cout<<"周长:"<<(15+10)*2<<endl<<"面积:"<<15*10;//与上2行一样的功能

  1. 输出"hello world"并换行:                                                                          
  2. cout输出8.0*2的运算并换行:                                                                              
  3. cout<<"5+2="<<3+4<<endl; 运行结果输出:                                                          
  4. cout<<91/2; 运行结果输出:                                                                                 
  5. 假设a变量已经定义,请完成输入a值的操作                                                            
  6. 假设a,b,c变量已经定义,请完成输入三个值的操作                                                

题1.已知长方形的长为6,宽为4,请用cout输出该面积S与周长C。

题2.请输出社会主义核心价值观,输出如下:

社会主义核心价值观:

富强、民主、文明、和谐

自由、平等、公正、法治

爱国、敬业、诚信、友善


2.变量与赋值 —— 脚踏实地

2.1 变量类型

int; long long  代表-->   (长)整数类型

float;double    代表-->   单/双精度浮点数类型(实/小数)

string              代表-->   字符串类型

bool                代表-->  布尔类型

char                代表-->  字符类型

2.2 变量类型与变量名

变量:像一个盒子,用来存值的,这个值不是固定的,是可以改变的。

格式:变量类型 变量名 = 值。

怎么定义/声明一个变量?

  • 变量类型 变量名;   例子:int a; a=6; cout<<a<<endl;
  • 变量类型 变量名 = 变量值; 例子:float b=6.66; cout<<b;

例子:int a = 6 //一个等于号代表赋值符号,等于号左边是变量,右边是值!

int a = 10;

cout<<a; //请问a是?

a = 66;

cout<<a; //请问a是?

综上,a=66, 会覆盖掉前面的值;

  • 代码的运行顺序是从上往下进行的;
  • 每一次新的赋值会替换掉原来存储的值。

1.请实现交换变量a与变量b的值。

例如a=5,b=4;

经过交换结果得:a=4, b=5。 (想下生活交换两个物品的位置,一般先拿一个在手里,另一个挪到空出来的位置即可)

核心代码:

int a=6,b=8,t;

t = a;

a = b;

b = t;

cout<<a<<endl<<b;

2.3 变量的命名规则

1.变量名只能由数字、字母、下划线组成;

2.不能以数字开头;

3.字母区分大小写、不能与关键字重名;

4.变量名要贴近英文、中文拼音,做到见名知意。


  1. 请写出常用的变量类型                                          
  2. 变量名/标识符名 由                                    组成
  3. 字母是区分                   
  4.           不能做变量名/标识符
  5. 整数6686赋值给变量a                     
  6. 双精度浮点数3.14赋值给变量d                           
  7. 字符A赋值给变量c                                      
  8. 布尔值false赋值给变量b                                
  9. 字符串hello赋值给变量s                                

题2·改: 输入两个值a,b ,并交换a,b的值。

/*
一、变量类型 
1.整数类型:int、long long 长整型
2.浮点数类型(小数):float单精度浮点数、double双精度 
3.字符类型:char 一个字符,只能用单引号; 
4.字符串类型:string 可以多个字符连用,双引号。
5.布尔类型:true对、真  false 错、假;非0为真
*/
//二、怎么定义变量或赋值?
//1.变量类型 变量名;
//2.变量类型 变量名=值;
//ctrl+/ 一口气注释 

#include<iostream>  // 导入输入输出流库 
#include<string> 	// 导入字符串库 
using namespace std; //使用标准的命名空间
int main(){ 		// 主要的  主函数 
	// 1.定义整数a赋值为5 
	int a=555555555; 
	cout<<a;
	// 2.定义长整数 b赋值为6666666666
	long long b=6666666666666;
	cout<<endl<<b<<endl;
	
	//3.定义字符 c; 
	char c;
	c='a'; //字母a赋值到变量c
	cout<<"字符:"<<c<<endl;
	
	//布尔类型 d,e,f三个变量 
	bool d,e,f; //同时定义三个变量 
	d=-1;
	e=false;
	f=0; 
	cout<<d<<" "<<e<<" "<<f<<endl;
	
	//字符串类型string 变量s 
	//string s;
	//用输入语句cin输入字符串值
	//cin>>s; // 输入语句  
	//cout<<"字符串:"<<s;
	
	//浮点数 单双 q,w
	float q;
	double w;
	cin>>q>>w;
	cout<< q << endl <<w << endl;
	return 0; // 程序结束	
}


3.运算——孜孜不倦

3.1算术运算符:

/除号 *乘号 -减号 +加号 %取余

3 / 2 = 1 //整数相除只会是整数,不会是浮点数

3.0 / 2 = 1.5  

3 % 2 = 1

自增自减运算符: ++ --

例如 int x = 2;

  • ++x 是先对变量x+1,在进行其他操作;
  • x++ 是先对变量x进行其他操作,再把x+1;
  • --x 是先对变量x-1,在进行其他操作;
  • x-- 是先对变量x进行其他操作,再把x-1; 

请问a值         b值          c值          

3.2 比较运算符

>大于 <小于 ==等于 !=不等于 >=大于或等于 <=小于或等于

cout<<(1<2)<<endl;   //满足条件,结果 1

cout<<(1>2)<<endl;  //满足条件,结果 0

cout<<(1==2)<<endl; //满足条件,结果 0

cout<<(1!=2)<<endl; //满足条件,结果 1

3.3逻辑运算符

&&(与)    ||(或)    !(非)

&&: 且,和;一假则假

||: 或 ; 一真则真

!: 取反

cout<<(6 && 8);//结果 1  cout<<(6 || 8); //结果 1

cout<<(0 && 1);//结果 0  cout<<(0 || 1); //结果 1

cout<<(!(0));  //结果 1   cout<<(!(5));   //结果 0

&&(与):左右两个满足条件就输出1,只要其中一个不满足就输出0;

||(或):只要左边满足条件就输出结果1,当两个都不满足就输出 0;

!(非) :取反,如果为真1,则输出假0。

3.4赋值运算符:

= *=  /=  +=  -=  %=

请问第一个输出b值         ,第二个输出b值         


 运算的优先级:算术运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符

3.5练 变量赋值运算

int a=2, b=6; a=b; b=a; cout<<a<<b; a值               ; b值             

 

 输入9 6,最后输出sum值为:          

int a=4, b=8; a+=b; b*=a; 输出b值              ; a值                


算术运算

1.x=(i=4, j=16,k=3); x值:             

2.假设所有变量均为整型,则表达式(a=2, b=50, b++, a+b)的值是        

3.int a=9;double b=1.3; (int)(a*b)的值                  

4.int a=7; float x=3.2, y=4.7; 表达式x+a%3*(int)(x+y)%2/4的值是        

逻辑运算&&关系运算

1.a = 3 * 2 <= 2 * 2 || 1 * 2 > 1 + 1, cout<<a;  a值       

2.b = 3 + 5 % 2 >= 2;cout<<b;  b值          

3.c = 0 == 0 || 2==3 && 2 ==2;  c值          

布尔应用

1. double c=7.8,  s=4;  bool a = c*2 > s*s; 输出a值          

2. int num = -1;  bool f = false;  f = num ; 输出f值           

3. int n = -1;  bool f = !(!n - 5) ; 输出f值          

三目运算

  1. int a=10, b=5, c;  c = (a>b)?a:b; c值        
  2. int a=10, b=5, c;  c = (a<b)?0:1; c值        
#include<iostream>
using namespace std;
int main(){
	cout<<(1<2)<<endl; 
	cout<<(1>2)<<endl; 
	cout<<(1==2)<<endl;
	cout<<(1!=2)<<endl;
	
	int a,b;
	a = 5;
	b = 1;
	b = b + a; // 简写 b+=a
	cout<<b<<endl; // 6
	b *= a;
	cout<<b<<endl; // b = 6*5
	
	cout<<(6 && 8); //结果 1 	
	cout<<(6 || 8); //结果 1
	cout<<(0 && 1); //结果 0 	
	cout<<(0 || 1); //结果 1
	cout<<(!(0));	//结果 1 	
	cout<<(!(5));	//结果 0	
	return 0;
}

 4.数位分离 —— 道法自然

题 1:输入一个两位的整数,求它的个位数与十位数。

int a,ge,shi;

cin>>a; 

ge = a % 10; //个位数6

shi = a / 10; //十位数8

cout<<ge*10 + shi<<endl; // 68

题 2:输入一个三位整数,求它的个、十、百位数。

int a,ge,shi,bai;

cin >> a;

ge = a % 10;

shi = a % 100 / 10; // a/10%10

bai = a / 100;

cout<<ge * shi * bai<<endl;

题 3:输入一个四位整数,求它的个、十、百、千位数。

int a,ge,shi,bai,qian;

cin>>a;

ge = a % 10 / 1; // 1 可忽略不写

shi = a % 100 / 10;

bai = a % 1000 / 100;

qian = a /1000;

cout<<ge<<shi<<bai<<qian<<endl;

由上 3 道题可知:

1. 个位数的获取都是取余 10 即可; 2. 最高位数是直接整除;

3. 其他位数是顺序 "补 0"


5.求时间—— 斗转星移

1 小时(h) = 60 分(m) = 3600 秒(s)

//题 1:假如有 1h:20m:30s, 时间全部转为秒数 t 怎做?

int t = 1*3600 + 20*60 + 30; //1h*3600+20m*60+30s

cout<<t<<endl; //全部秒数:4830

//题 2:输入 4830 秒, 输出:时 分 秒

int t,s,m,h;

cin>>t;

s = t % 60; //

m = t % 3600 / 60; //

h = t / 3600; //

cout<<h<<":"<< m<<":"<<s<<endl;

//题 3:输入 22 小时 125 分钟 306 秒,转为符合进率的时间

// 1.输入时分秒值,定义变量 h, m, s

int h,m,s;

cin>>h>>m>>s;

// 2.进率转换,多的秒数转为分钟,多的分钟转为小时,多的小时去掉

m = m + s/60; // 多的秒数转为分钟,并加上原来的分钟数

s = s % 60; // 剩余的秒数

h = h + m/ 60; // 多的分钟转为小时,并加上原来的小时数

m = m % 60; // 剩余的分钟数

h = h % 24; // 剩余的小时数

cout<<h<<":"<< m <<":"<< s<<endl;

#include<iostream>
using  namespace std;
int main(){
	//	求个十百数位数 
	int n,ge,shi,bai;
	cin>>n;
	ge = n%10;
	shi = n%100/10;
	bai = n/100;
	cout<<ge<<" "<<shi<<" "<<bai;
	//时间 取余数:输入一个秒数4032,求时分秒 
	int t,h,m,s;
	cout<<"秒数:"; 
	cin>>t;
	h = t/3600;
	m = t%3600/60;
	s = t%60;
	cout<<h<<":"<<m<<":"<<s<<endl;
	
	
	int h,m,s;
	cout<<"时 分 秒"; 
	cin>>h>>m>>s;
	m += s/60;
	s = s%60;
	h += m/60;
	m = m%60;
	h %= 24;
	cout<<h<<":"<<m<<":"<<s;
	
	
//	六个变量 h1 m1 s1 h2 m2 s2; 
	int h1,m1,s1,h2,m2,s2;
	cout<<"两个时分秒输入"<<endl;
	cin>>h1>>m1>>s1>>h2>>m2>>s2;
	h1 = h1+h2;
	m1 +=m2; 
	s1 +=s2;// 25 230 360 
	m1 += s1/60; //236-180 
	s1 = s1%60; 
	h1 += m1/60; 
	m1 = m1%60; //56
	h1 %= 24; 
	cout<<h1<<":"<<m1<<":"<<s1;
	return 0;
}

6.类型与转换 —— 默转潜移

对于不同的数据,应该用适合的类型来存储。如果用错误的类型存储了数据,可能会导致各种各样奇怪的问题。

由于不同数据类型的取值范围不同,类型在内存中占用的空间大小也有所不同。在内存中,衡量空间大小的单位是 字节(Byte)

1字节(Byte) = 8位(bit)(二进制 0到 255 )

英文占一个字节,中文占两个字节

1KB(千字节) = 1024B (字节)

KB< MB< GB < TB < PB < EB < ZB < YB


6.1类型范围

int  有效范围:-2*109 到2*109

long long  有效范围:-9*1018 到9*1018

double 有效范围最大

转换优先级为:double > long long > int

1、把3.5强制转为为整数:            

2、把3.5强制转为为布尔值:           

3、把4.5强制转为为长整型值:           

2.3 + 3 =           3 + true =          

转换类型格式:


7. if条件判断语句 —— 登高望远

7.1 条件判断语句 

单词:if            中文:如果

单词:else        中文:否则

单词:elif         中文:否则如果

条件判断格式:如果那么...否则就...

if (判断条件){

    if语句1;

    if语句2;

}

else{

    else语句1;

}


1.请输入一个值,请判断这个值是单数还是双数?

核心代码:

if (n % 2 == 0){ //2 4 6 8

    cout<<n<<"双数(偶数)";

}

else{

    cout<<n<<"单数(奇数)";

}

2.请输入一个值,请判断这个数是正数、负数还是非正非负数

// 正数 >0的数 负数 <0的数    0非正非负的数

if (n > 0){

    cout<<n<<"正数";

}

else if (n<0){ //elif 代表 否则如果

    cout<<n<<"负数";

}

else{

    cout<<n<<"非正非负数";

}

3.输入一个两位数,判断每个数是否是6或者8,如果是就是吉利数字

4.输入一个数字,判断这个数能否被7整除的同时不能被2整除

5.输入一个三位数,如果它的位数上有9,就输出yes,否则输出no。


7.2条件判断应用

1.输入一个整数值,判断能否2、3、5整除,输出结果。

2.输入两个整数,比较它们的大小。若x>y,输出>;若x=y,输出=;若x<y,输出<。

3.输入三个整数a,b,c请按a,b,c的顺序从小到大的值输出。

/* 4. 商家有A、B两种奖卷,只要满足下列三个其中一个条件就可以兑换奖品。

1.有A卷15张,B卷10张;

2.有A卷25张;

3.有B卷30张。

满足条件就输出"yes 获奖",否则输出"No 获奖" */

/* 5.输入某学生成绩

若成绩在85分及以上,输出"A"; 若成绩在60分到85分之间,输出"P",

若成绩低于60分,输出"E"。

输入

    一个成绩(整数)

输出

输出一个等级字符。*/

/* 6.给出一名学生的语文和数学成绩,判断他是否恰好有一门课不及格(成绩<60分)

输入:输入语文成绩和数学成绩。

输出:若该生恰好有一门课不及格,输出1;否则输出0。 */

/* 题7.输入一个数字(1到7范围)代表天数,1代表星期一,7同理代表星期天;

求输入天数的后天,例如输入5,应输出7。 */

/* 题8.大乐透彩票获奖模拟

输入获奖编码和用户码,判断满足下列那个条件:

● 如果用户码的数与获奖编码完全相同,奖金为100元

● 如果用户码的所有数字匹配获奖编码的所有数字,奖金为20元

● 如果用户码的数字能够匹配获奖编码的一个数字,奖金为2元

例如,用户码54 获奖编码54 ,就奖励100;

用户码54 获奖编码45,奖20;

用户码54 获奖编码40,奖2;匹配不上,输出0。 */

/* 9.编程题税收:国家个人所得税规定,

工资不到10000元的不用交税;

工资在 10000元至 29999 元的按总工资的3%交税;

工资在 30000元至 49999 元的按总工资的7%交税;

工资在 50000元及以上的,按照总工资减1000后的13%交税。

你的工资为 xx 元,那么他需要交多少税呢? */


7.3 if嵌套语句

题1:试编一个模拟电子门登录程序,输入正确的用户名和密码,输出欢迎语句“亲爱的小朋友欢迎你!”,否则输出“用户名不正确!”或“密码错误!”。

假设用户名与密码都是6位数,如用户名:202210,密码:123456。流程图如下:

#include<iostream>
using namespace std;
int main(){
	string USER = "202210" ;
	string PSW = "123456" ;
	string user,psw ;
	cin>>user>>psw;
	if(user==USER){
		if(psw==PSW){
			cout<<"亲爱的小朋友欢迎您!";
	    }
	    else{
	    	cout<<"密码错误!";
		}
	}      
	else{
		cout<<"用户名不正确!";
	}	    
return 0;
} 

 题2:有一个100米赛跑比赛,男女要进行分组,赛跑时间小于等于10秒就进入决赛。

 编程:请输入三个字母,ASCII码,比较字母的大小,最后输出最大的字母。

 编程:输入一个字符,判断是字母的话,就把原来的大写转为小写输出 或 小写转为大写输出;判断是字符数字,就变成输出是数字。

#include<iostream>
#include<string>
using namespace std;
int main(){
//	条件判断 if
//	if (判断条件1){
//		语句2;
//	}
//	else if(判断条件2){
//		语句2;
//	}
//	else{
//		语句1;
//	} 
//	题1:判断奇偶数
//	偶数:能被2整除,请问有余数 变量%2==0 
//	定义输入一个整数n。请判断n是奇数还是偶数
	int n;
	cin>>n;
	if(n%2==0){
		cout<<n<<"是偶数"<<endl;
	}
	else{
		cout<<n<<"是奇数"<<endl;
	}
//	题2:判断n是正数,负数,非正非负数。
//	定义输入n
	int n;
	cin>>n;
	if(n>0){
		cout<<n<<"是正数";
	}
	else if(n<0){
		cout<<n<<"是负数";
	}
	else{
		cout<<n<<"非正非负数";
	}
//	//题3:输入a,b的值,按从小到大输出。 
	int a,b;
	cin>>a>>b;
	if(a<b){
		cout<<a<<" "<<b;
	}
	else{
		cout<<b<<" "<<a;
	}
	
//	题4:输入a,b,c的值,按从小到大输出。 
	int a,b,c,t;
	cin>>a>>b>>c;
	if(a>b){
		t = a; 
		a = b; 
		b = t; 
	}
	if(a>c){
		t = a;
		c = a;
		c = t;
	} 
	if(b>c){
		t = b;
		b = c;
		c = t;
	} 
	cout<<a<<" "<<b<<" "<<c; 
	
	int n;
	cin>>n;
	if(n==88 || n==66 || n==68 || n==86){
		cout<<n<<" 是吉利数字";;
	}
	else{
		cout<<n<<" 不是吉利数字";
	}
	if(n%10==9 || n%100/10==9 || n/100==9){
		cout<<"yes";
	}
	else{
		cout<<"no";
	}
	if(n<10000){
		cout<<0;
	}
	else if(n>=10000 && n<30000){
		cout<<n*0.03;
	}
	else if(n>=30000 && n<50000){
		cout<<n*0.07;
	}
	else if(n>=50000){
		cout<<(n-1000)*0.13;
	}

	
//	1.导入字符串库<string> 
//	2.先确定用户名 User,密码 Psw
//	string User = "202210";
//	int Psw = 123456;
	
//	3.输入正确的用户名name和密码 mi。
 	string name;
	int mi;
	cin>>name>>mi;
	if (name == User){
		if(mi == Psw){
			cout<<"欢迎您!";
		}
		else{
			cout<<"密码错误!";
		}
	}
	else{
		cout<<"用户输入错误";
	}
//	
//	题 2:依次输入 3 个整数 a、b、c,
//	将它们从小到大的顺序输出。
	int a,b,c;
	cin>>a>>b>>c;  // 20 5 10 
	if(a>b){ // 5 20 10 
		swap(a,b);
	}
	if(a>c){ // 5 20 10
		swap(a,c);
	}
	if(b>c){ // 5 10 20
		swap(b,c);
	}
//	cout<<a<<" "<<b<<" "<<c;
//	题 3:有一个 100 米赛跑比赛,
//	男m 女f 要进行分组,
//	赛跑时间小于等于 10 秒就进入决赛。
	float score;
	char sex;
	cin>>score>>sex; //输入成绩和性别 
	if(score <= 10){
		if(sex == 'm'){
			cout<<"进入男子组"; 
		}
		else{
			cout<<"进入女子组"; 
		} 
	}
	else{
		cout<<"重在参与"; 
	}
//	return 0;

	int a,b,c;
	cin>>a>>b>>c;
	if (a+b>c && a+c>b && b+c>b){
		cout<<"yes";
	} 
	else{
		cout<<"no";
	}
}
 

8. 字符ASCII —— 独具慧眼

C++语言中默认使用了 ASCII(American Standard Code for Information Interchange,美国标准信息交换码)作为编码标准,每一个字符都对应了一个整数值。常见的一些字符和他们对应的编码值如图。这个字符的存储位置是由ASCII编码决定的!

char a=’A’; cout<<(int)a;  a输出结果:           

cout<<(int)'a'; 输出结果:              cout<<(int)'0'; 输出结果:             

在ASCII中,字符A与B的距离差距是            字符A与a的距离差距是            

在ASCII中,字符A与0的距离差距是            字符0与a的距离差距是             

1.导入精度的库代码:  #include<iomanip>               

2.cout输出5.14156并保留两位小数的值

代码:    cout<<fixed<<setprecision(2)<< 5.14156;                                                    

编程题:假如班级有21人,考试结束后班主任想要统计平均成绩。如果同学们的总成绩高于1260分,就将平均分四舍五入保留两位小数输出,否则就将平均分四舍五入保留到整数输出。我们一起来帮帮他吧。

输入:班级总成绩score。

/*题1:假如班级有21人,考试结束后班主任想要统计平均成绩。
如果同学们的总成绩高于1260分,
就将平均分四舍五入保留两位小数输出,
否则就将平均分四舍五入保留到整数输出。
输入:班级总成绩score。*/
#include<iostream>
#include<iomanip> 
using namespace std;
int main(){
//	1、定义并输入成绩score double float
// 2、输入的 score与 1260比较 
	double score;
	cin >> score;
	if(score > 1260){
		cout<<fixed<<setprecision(2) << score/21; 
	}
	else{
		cout<<fixed<<setprecision(0) << score/21; 
	}
/*
题2:输入一个字符,判断是字母的话,
就把原来的大写转为小写输出或小写转为大写输出;
判断是字符数字,就变成输出是数字。
*/	
//	1.定义并输入一个字符
	char a;
	cin>>a; 
//	2.如果字符是小写 就转为大写 
	if(a >= 97 && a <= 122){
		a = a - 32;
		cout<<a;
	}
	//2.如果字符是大写 就转为小写 
	else if(a >= 'A' && a <= 'Z'){
		a = a + 32;
		cout<<a;
	}
	//3.如果是字符数字, 
	else if(a >= '0' && a <= '9'){
		cout<<int(a)-48;
	}
	else{
		cout<<"请重新输入";
	}
	return 0;
}

9.while循环——千回百转

循环,也叫重复执行,只要满足循环的条件我们就执行循环里的语句。

格式:

whlie (判断条件) {

        while语句1;

        while语句2;

}

练1:数数字,请用编程实现依次输出1 2 3...98 99 100的数字。

改·练1:从大到小数数字,从50数到5为止。

练2:计算下1到100的数字和。 1+2+3+4+5...+99+100

练3:输出1到100的偶数和与奇数和

练4:判断1到100的数中,如果是7的倍数又不是3的倍数,那么就输出这个数。

练5:请输出n的阶乘(n!),例如2的阶乘=1*2  5的阶乘=1*2*3*4*5;

12的阶乘=1*2*3*....*11*12。n! = 1*2*3*...* (n-1) * n。

请编程实现下面题目

1.实现输出n到m的值

2.实现输出n到m的偶数值

3.实现输出200到2的3的倍数。

4.实现输出3到n的平方。

5.实现输出5到50的平方和。

#include<iostream>
#include<string>
using namespace std;
int main(){
//	1.输出2022疫情加油 1000遍; 
	int i=1; 
	while(i<=100){
		cout<<"2022疫情加油"<<endl;
//		i+=1;
		i++;
	}
//	2.统计 1+2+3+..+100的和==?
//	求偶数和 2+4+6+8+..+100 
	int i=1; 
	int sum=0;
	while(i<=100){
		sum += i;
		i++;
	}
	cout<<sum<<endl;
	
	int i=100;
	int sum = 0;
	while(i>=1){
		if(i%2!=0){
			sum += i;
			cout<<sum<<endl;
		}
		i--;
	}
	
//	求n的阶乘
//	3! = 1*2*3
//	5! = 1*2*3*4*5
//	求n的阶乘怎么做? 
	int n;
	cin>>n;
	int i=1;
	int sum=1;
	while(i<=n){
		sum*=i;
		i++;
		cout<<sum<<endl;
	}
	return 0;
}

9.2 while应用

题1:实现输入n = 987654321整数,把整数进行分解,每一行就输出 1 2 3 4 5 6 7 8 9。

2:班级有n个同学每个同学都有相应的C++的考试成绩score。请输入班级人数,班级同学的成绩,并得出成绩总分与平均分。

2”的最高分和最低分的差距——极差。由上图可知,最大值98,最小值32,极差=98-32=66。

#include<iostream>
using namespace std;
int main(){
	int i=2;
	int sum=0;
	while(i<=100){
//		求和 
		if(i%7==0 && i%3!=0){
			cout<<i<<endl;
		}
		 // i = i+1; 
		i++;	
	}
	cout<<sum<<endl;
	int i=200;
	while(i>=2){
		if(i%3==0){
			cout<<i<<endl;
		}
		i--;
	}
	int n,i=1,score,sum=0;
	int max,min;
	cin>>n; 
	while(i<=n){
		cin>>score;
		sum = sum + score;
		if(i==1){
			max = score;
			min = score;
		}
		else{
			if(max<score){
				max = score;
			}
			if(min>score){
				min = score;
			}
		}
		i++;
		
	}
	cout<<"总分:"<<sum<<endl;
	cout<<"平均分:"<<sum/n<<endl;
	cout<<"最大值:"<<max; 
	int cnt = 0; //一开始水仙花0 
	for(int i=100;i<=999;i++){
		int ge,shi,bai;
		ge = i % 10;
		shi = i % 100 / 10;
		bai = i / 100;
		if(i == ge*ge*ge+shi*shi*shi+bai*bai*bai){
			cout<<i<<endl;
			cnt++; // 统计多少个水仙花 
		}
	}
	cout<<"水仙花数有:"<<cnt; 
	for(int i=1;i<3;i++){
		for(int j=1;j<3;j++){
			cout<<i<<"*"<<j<<"="<<i*j<<" ";
		}
		cout<<endl;
	} 
	int cnt=0;
	for(int i=1;i<=6;i++){
		for(int j=1;j<=6;j++){
			for(int k=1;k<=6;k++){
				if(i+j+k==12){
					cout<<i<<" "<<j<<" "<<k<<endl;
					cnt++;
				}
			} 
		} 
	}
	cout<<"可能性有:"<<cnt; 
	int n,a,b,t;
	cin>>n; 
	for(int i=1;i<=n;i++){
		if(i<=2){
			a = 1;
			b = 1;
			cout<<a<<" ";
		}
		else{
			t = a;
			a = b;
			b = t+a;
			cout<<b<<" ";
		}
	}
	return 0;	
} 

9.3 break与continue

英文:break   中文:中断、破坏    终止整个循环

英文:continue  中文:继续、再开始  终止本次循环

题break:求1到100的偶数和,如果大于偶数和1000就停止程序。

//1-100的偶数和,如果大于1000就停止程序 
#include<iostream>
using namespace std;
int main(){
	int i=1,sum=0;
	while(i<101){
		if(i%2==0){
			sum+=i;
			cout<<sum<<endl;
		}
		if(sum>1000){
//			break;
			return 0;
		}
		i++;
	} 
}

题continue:求1-100以内,有多少个数值不是2或3或5的倍数。输出把值和个数求出来。

//1-100以内,判断值是 2或 3或 5的倍数就跳过
//continue 只终止本次循环
#include<iostream>
using namespace std;
int main(){
	int i=0;
	while(i<100){
		i++;
		if(i%2==0 || i%3==0 || i%5==0){
			continue;
		}
		else{
			cout<<i<<endl;
		}
	}
	return 0;
}

题--角谷猜想:输入一个整数N,如果它是偶数,就将它除以2,如果它是奇数,则对它乘3再加1。依次按这种步骤,直到最终结果得出1。

请您来用编程实现这个角谷猜想吧!

#include<iostream>
using namespace std; 
int main(){
	int n;
	cin>>n;
	while(n!=1){
		if(n%2==1){
			cout<<n<<"*3+1="<<n*3+1<<endl;
			n = n*3+1;
		}
		else{
			cout<<n<<"/2="<<n/2<<endl;
			n /=2;
		}
	}
	cout<<"End";
	return 0;
} 

 10.for循环—— 循序渐进

10.1 for循环初认识

循环的大佬——for循环,它是属于迭代的循环,而while 是属于条件的循环。

for循环格式:

for(循环初始化; 循环条件; 变量自增){

        for语句1;

        for语句2;

}

练1:请输出1到100的值。

练2:例如,我们要取从6到60的数字,并输出

3:请用依次输出100到1的值。

4:请实现输出n到m的值

5:实现输出n到m的偶数值

6:实现输出1-100的奇数和

题1:菲波那契数列,数列的第一个和第二个数都为1,接下来每个数都等于前面2个数之和。1 1 2 3 5 8 13 21 34 55 ...

请输入数值n,求斐波那契数列从1到第n个数的值?

题2:老师要统计全班同学的考试成绩score。

而且老师要算出班级的平均成绩、最高分、最低分。

首先请输入班级人数,再输入班级同学的成绩,并进行编程运算。


10.2 for循环应用

1.字符与循环

题1.1:循环输出26个字母,从A-Z。

1.2:输入某一个字母,依次输出这个字母到Z(z)的值,并统计个数。

输入格式:x  输出格式:x y z 3

或输入格式:Y  输出格式:Y Z 2

题1.3:输入某一个大写或小写字母,如果输入是大写,依次输出这个字母到Z的小写值。如果输入是小写,依次输出这个字母到z的大写值。

输入格式:x  输出格式:X Y Z

或输入格式:Y  输出格式y z

2.数与循环

2.1:要读入 n 个整数,统计其中正数、零、负数的个数并输出。

输入格式:

7

1 -1 0 3 5 0 -5

输出格式:

3 2 2

2.2:所谓的“水仙花数”是指一个三位数其各位数字的立方和等于该数本身。

数论中,水仙花数(Narcissistic number)也称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数,是指一N位数,其各个位数之N次方和等于该数本身。现请问100-999范围内的水仙花数有哪些,请输出出来,并统计个数。

例如153是“水仙花数”,因为:153 = 13 + 53 + 33

2.3:回文数,回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如12321 从哪边读都是一样的。请求出1-999范围内的回文数,并统计出来。

题3:(银行存利息问题) 农夫约翰在去年赚了一大笔钱!他想要把这些钱用于投资,并对自己能得到多少收益感到好奇。已知投资的复合年利率为R (0到20之间的整数)。约翰现有总值为M的钱(100到1,000,000之间的整数)。他清楚地知道自己要投资Y年(范围0到400)。请帮助他计算最终他会有多少钱,并输出它的整数部分。

某一年的利息 = 本金M * 年利率R%

某一年的钱 = 利息 + 本金

请你编程输入本金m,利率r,年数y;算出每一年的总钱数。

M*R%

本金=M + M*R%

题4:(猴子吃桃子问题)一群小猴子一天摘了许多桃子,第一天吃了一半,然后忍不住又吃了一个;第二天又吃了一半,再吃一个;后面每天都是这样吃。到第10天的时候,小猴子发现只有一个桃子了。问小猴子第一天共摘了多少个桃子。

#include<iostream>
using namespace std; 
int main(){
	double m,r,y;
	cin>>m>>r>>y;
	for(int i=1;i<=y;i++){
		m += m * r / 100;
		cout<<i<<"年后的本金:"<<m<<endl;
	} 
	int n=1;
	for(int i=10;i>=1;i--){
		cout<<i<<"天的桃子数:"<<n<<endl; 
		n = (n+1)*2;
	}
	for(char i = 'A';i<='Z';i++){
		cout<<i<<" ";
	}
	char n;
	int cnt=0;
	cin>>n;
	for(char i=n;i<='Z';i++){
		if(i>='A' && i<='Z'){
			cnt++;
			cout<<i<<" ";
		}
	}
	cout<<cnt;
	int n,a,cnt1=0,cnt2=0,cnt3=0;
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a;
		if(a>0){
			cnt1++;
		}
		else if(a<0){
			cnt2++;
		}
		else{
			cnt3++;
		}
	}
	cout<<cnt1<<" "<<cnt3<<" "<<cnt2;
	return 0;
} 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/68942.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一文详解名字分类(字符级RNN)

目录 一.前言 二.数据预处理 三.构造神经网络 四.训练 五.评价结果&#xff08;预测&#xff09; 一.前言 我们将构建和训练字符级RNN来对单词进行分类。字符级RNN将单词作为一系列字符读取&#xff0c;在每一步输出预测和“隐藏状态”&#xff0c;将其先前的隐藏 状态输…

02-MySQL数据管理

目录 DDL&#xff08;数据操作语言&#xff09; 添加数据 添加student表数据 修改数据 WHERE条件子句 修改student表数据 删除数据 删除student表数据 总结&#xff1a; DDL&#xff08;数据操作语言&#xff09; 用于操作数据库对象中所包含的数据 关键字&#xff1…

STM32的光敏检测自动智能窗帘控制系统proteus设计

STM32的光敏检测自动智能窗帘控制系统proteus设计 ( proteus仿真程序演示视频&#xff09; 仿真图proteus 8.9 程序编译器&#xff1a;keil 5 编程语言&#xff1a;C语言 设计编号&#xff1a;C0074 主要功能&#xff1a; 结合实际情况&#xff0c;基于STM32单片机设计一…

ATTCK-T1078-001-默认账户

0x01基础信息 具体信息详情ATT&CK编号T1078-001所属战术阶段初始访问操作系统windows 7 旗舰版 SP1创建时间2022年11月10日监测平台火绒安全、火绒剑、sysmon 0x02技术原理 攻击者可能会获取和滥用默认帐户的凭据&#xff0c;以作为获得初始访问、持久性、特权升级或防御…

Python用一行代码,截取图片

前言 本文是该专栏的第3篇,后面会持续分享python的各种黑科技知识,值得关注。 在工作上,有些时候可能需要用到代码来进行自动截图,比如说需要图文识别,进行数据信息抽取的时候,能自动定位截图无疑是很好的办法。 对python而言,截图方法其实有很多,但笔者下面要介绍的…

活动明天见 | DataFunSummit 2022 AI基础软件架构峰会圆桌会

11月16日晚 19&#xff1a;30-21:00&#xff0c;第四范式技术副总裁、OpenMLDB 项目发起人郑曌受邀主持DataFunSummit 2022 AI基础软件架构峰会圆桌会&#xff0c;将与各位资深专家在线上做深度的交流分享&#xff0c;欢迎大家届时收看。 开源机器学习数据库 OpenMLDB **活动时…

全国产三防加固计算机

国产三防加固计算机&#xff0c;本文指的是CPU为国产飞腾D2000处理器、操作系统为国产麒麟V10 SP1系统&#xff0c;整机方案采用全国产化设计。 达梦数据库是由武汉达梦数据库股份有限公司推出的具有完全自主知识产权的高性能数据库管理系统&#xff0c;简称DM。达梦数据库管理…

“辣条一哥”卫龙冲击港股IPO,我又吃出一家上市公司

一、公司简介 卫龙作为国内领先的辣味休闲食品企业&#xff0c;是目前国内辣味食品当之无愧的第一品牌。据2021年零售销售额计&#xff0c;公司在辣味休闲食品企业中排名第一&#xff0c;市场份额达到了6.2%&#xff0c;是一款备受年轻消费者喜爱的休闲食品品牌。天眼查App显示…

vue3之实现响应式数据ref和reactive

用途 ref、reactive都是vue3提供实现响应式数据的方法 ref() 接受一个内部值&#xff0c;返回一个响应式的、可更改的ref对象&#xff0c;此对象只有一个指向其内部的属性.value ref可以说是简化版的reactive&#xff0c;与reactive的区别则是 ref是对某一个数据类型的单独…

测试工程师面试题

很多软件测试工程师在面试的时候都会遇到考官给的各种各样的面试题&#xff0c;这也反应了测试工程师对企业的重要性&#xff0c;面试通常分为以下几个方面&#xff0c;由于篇幅有限&#xff0c;在这里就只给大家分享一些比较常见的问题。 01 自我介绍 这里我不分享如何自我介…

js 网格卡片交换动画

关键技术&#xff1a;animate(keyframes, options) keyframes 关键帧对象数组&#xff0c;或一个关键帧对象&#xff08;其属性为可迭代值的数组&#xff09; 代表动画持续时间的整数&#xff08;以毫秒为单位&#xff09;&#xff0c;或者一个包含一个或多个时间属性 参考传送…

C# 学习之路(类的基本概念)

C# 学习之路&#xff08;类的基本概念&#xff09; 类的概述 类是一种活动的数据结构 程序的数据和功能被组织为逻辑上相关的数据项和函数封装的集合&#xff0c;并称为类 类包含数据成员和函数成员&#xff1a; 数据成员&#xff1a;存储与类或类的实例相关的数据&#xff08…

Linux条件变量

一、条件变量函数 1&#xff0c;条件变量 条件变量&#xff1a;用来描述某种临界资源是否就绪的一种数据化描述。通常要配合mutex一起使用。 2&#xff0c;初始化 pthread_connd_init: 同样有一个静态的和一个动态的。 其中cond是需要初始化的条件变量&#xff0c;attr传…

在线书法培训迎来新风口

随着社会教育水平的不断提高&#xff0c;书法不再是独属于某个年龄层的爱好&#xff0c;开始被越来越多人欣赏和重视。 写一手好字&#xff0c;对每一个人来说都是一个加分“外挂”。在考场上&#xff0c;一手好字无疑可以让阅卷老师在心中自然加分&#xff1b;在职场中&#…

源码深度解析之 Spring IOC

1. 基础知识 1.1 什么是 Spring IOC &#xff1f; IOC 不是一种技术&#xff0c;只是一种思想&#xff0c;一个重要的面向对象编程的法则&#xff0c;它能指导我们如何设计出松耦合、更优良的程序。 传统应用程序都是由我们在类内部主动创建依赖对象&#xff0c;从而导致类与…

Vue--》自定义指令的使用讲解

目录 自定义指令 自定义指令的分类 私有自定义指令&#xff1a; 全局自定义指令&#xff1a; 总结 自定义指令 vue官方提供了v-text、v-for、v-model、v-if等常用的指令&#xff0c;还允许开发者自定义指令。 自定义指令的分类 私有自定义指令&#xff1a; 在每个vue组…

[附源码]计算机毕业设计框架的食品安全监督平台的设计与实现Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

u-BOOT启动流程

1、u-boot入口&#xff1a;入口即第一行程序&#xff0c;程序的链接是由链接脚本决定的&#xff0c;编译uboot之后&#xff0c;可以在根目录下生成u-boot.lds文件 打开lds文件可以看到代码当前入口点&#xff1a; &#xff1a;_start&#xff0c;_start后面就是中断向量表&…

[附源码]Python计算机毕业设计Django演唱会门票售卖系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

股票接口怎样获取数据方便?

目前很多交易者对股票数据行情查询相关使用的系统也是很普遍&#xff0c;就比如说你查询A股的大秦铁路可以使用实时股票数据接口来获取它的实时股价&#xff0c;成交量&#xff0c;成交金额等情况。那么在这个过程中&#xff0c;股票接口是如何获取数据更方便呢&#xff1f;小编…