c++学习--c++基础

初始c++

输入与输出

、输入与输出
例子:

#include <bits/stdc++.h>//万能头文件 
 
using namespace std;//std标准
 
int main()//主函数
{
    
    
   cout << "Hello World"<<endl;//输出,输出语句是以“;”结尾的
   //cout<< "Hello";
   return 0;//程序结束 
}

1.输出语句:cout<<…;

cout<<1+1<<endl;//输出数字,1+1可进行运算,结果为2
cout<<"1+1"<<endl;//输出字符串
cout<<1+2*3-4<<endl;//cout内可进行简单的运算

2.endl可进行换行

cout<<1+2;
cout<<1+2<<endl;

3.多重输出

cout<<"Hello"<<"World"<<endl;//输出两个部分
cout<<"Hello"<<""<<"World"<<endl;//输出三个部分
cout<<"Hello"<<endl<<"World"<<endl;//两部分会换行
cout<<"Hello";
cout<<"World";

变量

、变量
1.数据类型名(常用)
字符型:char
布尔型:bool
长整型:long long
数值型:int
实型(小数点后一位):float
实型(小数点后两位):double
2.变量的定义
数据类型加名字,语法格式:数据类型名 变量名1,变量名2…;
例如:

int age,score;
double height,weight;

3.变量赋值
例如

int age=20,score=100;

变量未赋值前不推荐使用,注意“先赋值后使用”的规则
4.变量的命名规则
在这里插入图片描述

5.变量的读入(使用cin读入)

cin>>a;
cin>>b;
cin>>c;
cin>>a>>b>>c;

读入不同变量之间要用空格隔开
6.变量的四则运算
(1)加减乘(+,-,*)
变量的加减乘运算与数学中的加减乘一样。
除了运算的两个对象均为整型是结果为整型,若运算对象中有实型变量,结果为实型。
(2)除法(/)
若参与运算的两个对象均为整型,其结果为数学运算的整数部分
例如:3/2结果为1,而不是1.5
若运算对象中有实型,其结果为正常运算结果。
例如:7/5.0结果为1.4
(3)模运算(%)
参与运算对象均需为整型
例如:7%5结果为2

赋值语句

1.一般格式:变量名=表达式
例如:
a=3;
a=b+c;
a=a+1;
a和b进行换值
c=a;
a=b;
b=c;
2.关系表达式(结果为布尔类型:true/false)
在这里插入图片描述
3.逻辑运算符
在这里插入图片描述

if选择结构

1.if语句
语法格式:

if(判断条件){
    
    
    条件成立时执行的语句
}else{
    
    
    条件不成立时执行的语句
}

2.多重if重合
语法格式:

if(判断语句1{
    
    
	语句1
}else{
    
    
	if(判断语句2{
    
    
		语句2
	}else(){
    
    
		if。。。
			else。。。{
    
    
				语句n
			}
	}
}

3.if内包含多重if语句
语法格式:

if(条件1{
    
    
	if(条件2{
    
    
		12都成立的执行语句
	}else{
    
    
		1成立,2不成立的执行语句
	}
}else{
    
    
	if(条件3{
    
    
		1不成立,3成立的执行语句
	}else{
    
    
		13都不成立的执行语句
	}
}

4.并列if语句

if(条件1){
    
    
   结果1
}else if(条件2){
    
    
   结果2
}else if(条件3){
    
    
   结果3
}else if(条件4){
    
    
   结果4
}
return 0;

while循环结构

1.while语句
语法格式:
while(条件表达式){
语句
}
注意:程序会一直持续到条件表达式不成立为止。
2.break
语法格式:

while(){
    
    
	if(){
    
    
		...
		break;
	}
	...
}

注意:遇到break语句时,程序会终止循环,执行循环结束的下一条语句。
3.continue
语法格式:

while(){
    
    
	if(){
    
    
		...
		continue;
	}
	...
}

4.常见算法例题解决方法
在这里插入图片描述

for循环结构

1.for语句

for(初始化;循环条件;变量变化){
    
    
	执行语句
}

注意:循环语句中的初始化,循环条件,变量变化可部分或者全部省略,三部分其中的两个“;”不可省略 。
2.for循环语句中省略初始化,循环条件,变量变化的情况

for(;;){
    
    
	执行语句
	...
	break;//终止循环
}

注意:上述循环若无break终止,将会一直执行下去,成为一个死循环。

算法练习例题

、题目:输入3个整数,把这三个数从大到小输出

输入格式:
三个整数(每个整数之间用一个空格隔开)

输出格式:
把输入的三个整数从大到小输出(每个整数之间用一个空格隔开)

限制:
三个数的范围都是0到1000

样例 1 :
输入:
1 2 3
输出:
3 2 1

样例 2 :
输入:
0 1 1
输出:
1 1 0

#include <bits/stdc++.h>
using namespace std;
int main(){
    
    
	int a,b,c;
	cin>>a>>b>>c;
	if(a>=b&&b>=c){
    
    
		cout<<a<<" "<<b<<" "<<c;
	}else if(a>=c&&c>=b){
    
    
		cout<<a<<" "<<c<<" "<<b;
	}else if(c>=b&&b>=a){
    
    
		cout<<c<<" "<<b<<" "<<a;
	}else if(c>=a&&a>=b){
    
    
		cout<<c<<" "<<a<<" "<<b;
	}else if(b>=a&&a>=c){
    
    
		cout<<b<<" "<<a<<" "<<c;
	}else if(b>=c&&c>=a){
    
    
		cout<<b<<" "<<c<<" "<<a;
	}
}

、题目:已知矩形的大小为n×m,现用a×a的正方形填充该矩形。输入三个正整数n,m,a(n,m,a≤10^9),计算至多能填入多少正方形?(正方形可以正好碰到矩形边界,但不能超出矩形外)
输入格式:

一行三个用一个空格隔开的正整数n,m,a。
输出格式:

输出能填入正方形的数量。
样例 : 1

输入:
3 4 1
输出:
12

#include <bits/stdc++.h>
using namespace std;
int main(){
    
    
	int n,m,a;
	cin>>n>>m>>a;
	cout<<(n/a)*(m/a);
}

注意:这道题目的陷阱之处在于,不能用整个大矩形面积除以小矩形面积,而应该用大矩形的长除以小矩形的边长,舍去小数部分(小数部分表示超出边界),大矩形的宽除以小矩形的边长,舍去小数部分。
、题目:输入一个数n,求1~n之间所有7的倍数和末尾含7的数的和。
输入格式:

一个整数n(0<=n<=123456)
输出格式:

求1~n之间所有7的倍数和末尾含7的数的和
样例 1 :

输入:
21
输出:
59
说明:
7+14+17+21=59

#include <bits/stdc++.h>
using namespace std;
int main(){
    
    
	int n,i,m=0;
	cin>>n;
	for(i=1;i<=n;i++){
    
    
	   if(i%7==0||(i-7)%10==0){
    
    
		   m=m+i;
	   }
	}
	cout<<m;//在for循环语句和if语句之外
}

、题目:一个皮球从空中落下,每次落地反弹的高度是原来高度的一半(向下取整)
求问,当皮球初始高度为n米(n为整数且<10000)时,皮球一共可以反弹多少次,且皮球在空中经历的总距离是多少?

输入格式:

一个正整数n,n<10000
输出格式:

两个数,之间用空格隔开,第一个数为皮球的反弹次数,第二个数为皮球在空中飞行的总距离
样例 1 :

输入:
8
输出:
4 22
样例 2 :

输入:
80
输出:
7 236

#include <bits/stdc++.h>
using namespace std;
int main(){
    
    
	int n,i,m=0,s=0;//m为次数,s为距离
	cin>>n;
	i=n;//将初始高度n赋值给i(后续将会使用i)
	while(n>=1){
    
    
		if(n>=1){
    
    
			s=s+n*2;//距离应为初始高度+每次高度一半的二倍
			m++;//每循环一次,m的值加一
		}
		n=n/2;//高度减半
	} 
	cout<<m<<" "<<s-i;//初始高度加了两次,应再减去一次初始高度
	return 0;
}

猜你喜欢

转载自blog.csdn.net/m0_63599362/article/details/126842382