新手小白 学习C++ 记录贴

打卡第一天:Basic Programming Statements

第一次使用 CSDN 写博客。开这个帖子,每天学习一部分C++内容顺便复习一下英语(手动狗头)。

1.Declarative Statements

例如:求一个球体的体积。
做法:先定义半径变量,输入半径值;再定义一个结果变量,用于存放计算结果;最后输出结果。(或者直接输出结果)

#include <iostream>
using namespace std;

void s();

int main(){
	s();
}

void s(){
	double r;
	cout<<" Please input radis of ball: ";
	cin>>r
	if(r < 0) return;  //如果输入的半径小于0,则结束函数运行。
	cout<<" The Sphere of ball is "<< 4/3*3.14*r*r*r<<"\n";
}

注意点:使用函数前,要进行声明。C++中任何名称再使用之前都要声明。

2.Conditional Statements

例如:比较两者大小

int max(int a, int b){
	if(a > b) 
		return a;
	return b;   //此处可以省略 else		
}

例如:判断是否为毕业班学生

//利用 条件表达式
cout<<((year>=2016 && year<=2020)? "" : "Not")<<"Graduate\n";

注意点1:若条件值为0,则条件为假;若条件值为非0,则条件为真。
注意点2:在 if 语句的条件中定义的变量,只能在整个 if 语句范围内使用,否则无法通过编译

例如:对学生成绩进行分类

switch(grade){
	case'A':cout<<"90 ~ 100\n";
		break;
	case'B':cout<<"80 ~ 89\n";
		break;
	case'C':cout<<"70 ~ 79\n";
		break;
	case'D':cout<<"60 ~ 69\n";
		break;
	case'E':cout<<"< 60\n";
		break;
	default:cout<<"404 Not Found!\n";
}

注意点1:最后一个case分支可以省略break语句。
注意点2:switch可以进行嵌套,其中case与default标号是与包含它的最小的switch相联系的。

3.Loop Statements

例如:求表达式1+2+3+···+100的值

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

//还可以写成
int sum = 0;
for(int i = 1; i <= 100; )
	sum += i++;
cout<<sum<<endl;

//还可以写成
int sum = 0;
for(int i = 1; ; i++){
	sum += i;
	if(i>100) break;
}
cout<<sum<<endl;

//还可以写成
int sum = 0, i = 1;
for( ; i <= 100; i++){
	sum += i;
}
cout<<sum<<endl;

例如:求表达式 n²-12n-46(n>0)在n取何值的时候为正。

int n = 1;
while(1){
	if(n*n-12*n-46>0)
		break;
	else
		++n;
}
cout<<n<<endl;

例如:输出如下图形:-------A
------------------------------A A
----------------------------- A A A
----------------------------- A A A A
做法:一共四行,每行增加一个字符,所以循环应该4次,每次输出一行,其循环模式可以写为:for(int i = 1; i <= 10; ++i){
------------------------------ 输出第 i 行;
------------------------------ 换行;
--------------------------- }

A的数量
11
22
33
44
#include<iostream>
using namespace std;
int main(){
	for(int i = 1; i <= 4; i++){
		for(int j = 1; j <= i; j++){  //输出第 i 行,其长度依赖于i
			cout<<"A";
		}
		cout<<endl;  //换行
	}
}

例如:输出如下图形:------- A A A A A A A
---------------------------------A A A A A
----------------------------------- A A A
--------------------------------------A

做法:一共四行,先输出若干个空格,在输出若干个A,接着换行。

第 i 行空格数A的数量
107
215
323
431

可以得出结论:第 i 行的空格数为i-1,A的数量为9-2i

#include<iostream>
using namespace std;
int main(){
	for(int i = 1; i <= 5; ++i){
		for(int j = 1; j <= i-1; ++j)   //输出 空格
			cout<<"";
		for(int k = 1; k <= 9-2*i; ++k)  //输出 字符A
			cout<<"A"
		cout<<endl;  //换行
	}
}

例如:输出如下图形:--------------------- A
--------------------------------------- A B C
------------------------------------ A B C D E
----------------------------------A B C D E F G

做法:一共四行,先输出若干个空格,在输出若干个字符,接着换行。

第 i 行空格数字符的数量
131
223
315
407

可以得出结论:第 i 行的空格数为4-i,A的数量为2i-1

#include<iostream>
using namespace std;
int main(){
	for(int i = 1; i <= 4; ++i){
		for(int j = 1; j <= 4-i; ++j)   //输出 空格
			cout<<"";
		for(int ch = 'A'; ch <= 'A'+2*i-1; ++ch)  //输出 字符
			cout<<ch
		cout<<"\n";  //换行
	}
}

例如:判断一个数是否为素数

#include<iostream>
using namespace std;
int main(){
	cout<<"Please input a number:\n";
 	int m;
 	cin>>m;
 	for(i = 2; i < m; ++i)
 		if(m % i == 0){
 			cout<<m<<"is not a prime.\n";
 		}
 	cout<<m<<"is a prime.\n";
 }
#include<iostream>
#include<cmath>
using namespace std;
int main(){
	cout<<"Please input a number:\n";
	int m;
	cin>>m;
	double sqrtm = sqrt(m * 1.0);
	for(int i = 2; i <= sqrtm; ++I)
		if(m % i == 0){
			cout<<"is not a prime.\n";
			return 1;
		}
	cout<<m<<"is a prime.\n";
}

4.I/O Statements

例如:上述倒三角形用流状态来写

#include<iostream>
#include<iomanip>
using namespace std;
int main(){
	for(int n = 1; n <= 10; ++n)
		cout<<setfill('')<<setw(n)<<""
		    <<setfill('A')<<setw(9-2*n)<<"A"<<endl;
}

例如:将输入文件a.in的内容复制到输出文件a.out

#include<fstream>
using namespace std;
int main(){
	ifstream in("a.in");   //定义输入流in
	ofstrean out("a.out"); //定义输出流out
	for(string str; getline(in, str); ) //从输入文件流中读入一行数据放到string变量str中
		out<<str<<endl;
}

5.Move Statements

例如:输出1~100中不能被3整除的数

for(int n = 1; n <= 100; ++n)
	if(n % 3 == 0)
		continue;
	cout<<n<<endl;
}

注意点:continue语句只结束本次循环的执行,而不终止整个循环;而break语句则是结束整个循环,不再进行循环条件判断。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值