Acwing-语法基础练习

这篇具有很好参考价值的文章主要介绍了Acwing-语法基础练习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1. 非常基础的C++ (面向程序) 框架

2. 一些基础数据类型

3.变量的输入输出

4.ACWing题库-第1题:A+B

5.四则运算(只整理一部分较难的)

6.数据类型转换

寒假自学用,记录Acwing题目。

语言:C++


1. 非常基础的C++ (面向程序) 框架

#include <iostream>  //头文件 

using namespace std;  //使用std命名空间,解决命名冲突 

int main()  //程序入口(函数入口) 
{  

	cout<<"Hello World!"<<endl;  //程序主体
	
	return 0;  //最后返回0
}

2. 一些基础数据类型

常见类型:

bool 布尔类型: False(0) , True(1,或除了0外的值)

char 字符: 'c', 'a' , '\n'   使用单引号括住

int 整数类型:取值范围是

float 单精度浮点数: 有6-7位有效数字,也可以使用科学计数法表示如:1.489e3

double 双精度浮点数: 有15-16位有效数字

不常见类型:

long long : 是int类型的扩展版,表示范围为

long double: 是double类型的扩展版,有18-19位有效数字

#include <iostream>  //头文件 

using namespace std;  //使用std命名空间,解决命名冲突 

int main()  //程序入口(函数入口) 
{  

	/*
	int %d
	float %f   %.2f(保留两位小数)
	double %lf
	char %c
	long long %lld
	*/

	//变量类型定义
	 int a , b = 1 , c = b;
	 
	 float d = 1.2 ,e = 2 , f = 2.567;
	 
	 bool g = true , h = false;
	 
	 long long i = 10000000LL ;  //在数值后面添加LL 或者 ll 都表示long long 类型 
	 //long long i = 10000000ll ; 
	 
	 long double j = 12345.6;
	
	return 0;
}

以下是菜鸟网站中给出的数据类型表格:
Acwing-语法基础练习,ACWing算法练习,算法,c++


3.变量的输入输出

在所有算法比赛中,所有能够用cin  cout表示的语句均可以使用scanf printf语句替换,反之则不一定。原因在于cin cout效率较低,容易超时

cin 输入不会读入空格,而scanf输入会读入空格。

cin 输入后跟大于号'>>'

cout输出后跟小于号'<<'

#include <iostream>

using namespace std;

int main(){
	
	int a,b; //定义2个整型变量 
	
	cin >> a >> b;  //输入a,b 

	cout << a+b << endl ;  //输出  endl起到结尾换行的作用 
	cout << ' ' << endl ;  //输出 空格
	cout << a*b ; 	

	return 0;
}

scanf 输入

printf 输出

#include <iostream>
#include <cstdio>  //如果要使用scanf printf输入输出,最好加上此头文件
#include <cmath>  //对数进行开方,需要引入cmath库头文件 

using namespace std;

int main(){
	
	int a,b;  //定义整型变量 
	float c,d; //定义单精度浮点变量 
	
	scanf("%d,%d",&a,&b); //不要忘记取地址符号&
	
	printf("a+b = %d\n",a+b);
	printf("a*b = %d",a*b);
	
	scanf("%f,%f",&c,&d);
	printf("c+d = %.2f\n",c+d); //%.2f表示单精度浮点数保留小数点后两位
	printf("c*d = %.3f\n",c*d); 
	printf("c^0.5 = %.2f",sqrt(c));
	
	
	return 0;
} 

定义字符型char数据:

#include <iostream>
#include <cstdio>  //如果要使用scanf printf输入输出,最好加上此头文件

using namespace std;

int main(){

	char a,b; //定义字符型变量 
	
	scanf("%c%c",&a,&b); //%c%c会读入空格,但是%d不会读入空格
	printf("%c+%c",a,b); 
	
	return 0;
} 

4.ACWing题库-第1题:A+B

>  输入两个整数,求这两个整数的和是多少。

输入格式

>  输入两个整数A,B ,用空格隔开

输出格式

>  输出一个整数,表示这两个数的和

数据范围

>  0≤A,B≤10e8

代码:

#include <iostream>
using namespace std;

int main(){
    int a,b;
    
    cin>>a>>b;
    cout<<a+b<<endl;
    
    return 0;
}

已通过测试。

Acwing-语法基础练习,ACWing算法练习,算法,c++


5.四则运算(只整理一部分较难的)

>除法运算

#include <iostream>
#include <cstdio>
#include <cmath>

using namespace std;

int main(){
	
	cout << 5 / 3 << endl;  //整除,结果为1
	cout << 5.0 / 3.0 << endl ;  //结果为浮点数
	
	cout << 5 % 3 << endl;  //取余,结果的符号只取决于被除数的符号
	cout << -5 % 3 << endl; //并且取余操作只能应用于整数类型 且除数不能为0
	
	return 0;
} 

>自增,自减运算

#include <iostream>
#include <cstdio>

using namespace std;

int main(){
	
	int a = 2;
	int c = a ++; //a先将原本的值赋给c,再自增1 
	printf("a = %d,c = %d\n",a,c);
	
	
	int b = 2;
	int d = ++ b; //b先自增1,再将增加后的值赋给d 
	printf("b = %d,d = %d",b,d);
	
	return 0;
} 

看看输出结果:
Acwing-语法基础练习,ACWing算法练习,算法,c++


6.数据类型转换

分为隐性转换显式转换

int 和 float、double可以进行转换,但是浮点类型转换为int类型时需要向下取整。

int 类型和char类型可以通过ASCII码表相互转换

ASCII码转换表链接:ASCII码一览表,ASCII码对照表 (biancheng.net)

#include <iostream>
#include <cstdio>

using namespace std;

int main(){
	
	char c='A' ; 
	cout << (int)c <<endl; //将字符类型转换为整数类型 
	
	int a = 66;
	cout << (char)a << endl; //将整数类型转换为字符类型 
	
	char ch = 'C';
	cout << (char)(ch+30) << endl; //使用字符类型做运算 
	
	return 0;
} 

结果:

Acwing-语法基础练习,ACWing算法练习,算法,c++文章来源地址https://www.toymoban.com/news/detail-821056.html

到了这里,关于Acwing-语法基础练习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 搜索与图论(acwing算法基础)

    排列数字 n皇后 走迷宫 单链表 点击跳转至例题 idx存的是指针 树与图的深度优先搜索 树的重心 每个节点都是一个单链表 模拟队列 hh = 0 , tt = -1 有向图的拓扑序列 都是从前指向后,即有向无环图(不能有环) 所有入度为0的点,都能排在前面的位置 删掉t-j的边,仅仅是j的入度

    2024年02月08日
    浏览(33)
  • acwing算法基础之动态规划--背包问题

    (零) 背包问题描述:有 N N N 个物品,每个物品的体积是 v i v_i v i ​ ,价值是 w i w_i w i ​ ,现有容量是 V V V 的背包,求这个背包能装下的物品的最大价值。 01背包问题:每个物品只有1个。 完全背包问题:每个物品有无穷多个。 多重背包问题:第 i i i 个物品有 s i s_i s

    2024年02月05日
    浏览(37)
  • acwing算法基础之搜索与图论--kruskal算法

    kruskal算法的关键步骤为: 将所有边按照权重从小到大排序。 定义集合S,表示生成树。 枚举每条边(a,b,c),起点a,终点b,边长c。如果结点a和结点b不连通(用并查集来维护),则将这条边加入到集合S中。 kruskal算法的时间复杂度为O(mlogm),它用来解决稀疏图的最小生成树问题

    2024年02月05日
    浏览(35)
  • Acwing-基础算法课笔记之搜索与图论

    bellman-ford算法适用于负权边的图,求 1 到 n 的最多经过k条边的最短距离。 如图所示: 1 2 3 dist 0 ∞ infty ∞ ∞ infty ∞ ⇓ Downarrow ⇓ 1 2 3 dist 0 1 ∞ infty ∞ ⇓ Downarrow ⇓ 1 2 3 dist 0 1 2 此过程中出现了串联的结果,所以是错误的,此时需要进行备份操作。 备份操作如下: 为了

    2024年01月20日
    浏览(41)
  • Acwing-基础算法课笔记之动态规划(背包问题)

    01背包中的0和1指的是放与不放,而且不能出现放多个的情况,背包只能放相同物品中的一个; 首先是对 d [ i ] [ j ] d[i][j] d [ i ] [ j ] 数组的解释,该数组表示的是只看前 i i i 个物品,总体积是 j j j 的情况下,总价值最大是多少; 不选第 i i i 个物品,只考虑前 i − 1 i-1 i −

    2024年04月17日
    浏览(38)
  • acwing算法基础课(第三讲 搜索与图论)

    void dfs(int u){ if(n == u){ for(int i = 0;i n;i++) puts(g[i]); puts(“”); return; } for(int i = 0;i n;i++){ if(!col[i] !dg[u+i] !udg[n - u + i]){ g[u][i] = ‘Q’; col[i] = dg[u+i] = udg[n - u + i] = true; dfs(u+1); col[i] = dg[u+i] = udg[n - u + i] = false; g[u][i] = ‘.’; } } } int main(){ scanf(“%d”,n); for(int i = 0;i n;i++){ for(int j = 0;j

    2024年04月10日
    浏览(41)
  • acwing算法基础之动态规划--DP习题课1

    暂无。。。 暂无。。。 题目1 :最长严格上升子序列,要求时间复杂度为 O ( n l o g n ) O(nlogn) O ( n l o g n ) 。 解题思路:保存每个长度下的最小的结尾元素值,遍历数组元素时,通过二分找到它,然后更新它即可,返回len。 该算法的关键步骤如下: 定义向量 vec , vec[i] 表示

    2024年02月03日
    浏览(38)
  • 【AcWing算法基础课】第五章 动态规划(未完待续)

    本专栏文章为本人AcWing算法基础课的学习笔记,课程地址在这。如有侵权,立即删除。 dp问题的优化 :在基本形式dp上作等价变形。 dp问题的解题方法 : 1)状态表示 集合 属性:最大值/最小值/数量。 2)状态计算 集合划分(不重不漏) 题目链接: 2. 01背包问题 - AcWing题库

    2024年02月12日
    浏览(35)
  • 【AcWing算法基础课】第三章 搜索与图论

    本专栏文章为本人AcWing算法基础课的学习笔记,课程地址在这。如有侵权,立即删除。 特点 :尽可能先向 纵深方向 搜索。使用 stack 实现。所需空间 O(h) (h为深度)。不具有“最短性”。 题目链接 :842. 排列数字 1.1题目描述 给定一个整数 n,将数字 1∼n 排成一排,将会有

    2024年02月12日
    浏览(54)
  • acwing算法基础之动态规划--线性DP和区间DP

    线性DP:状态转移表达式存在明显的线性关系。 区间DP:与顺序有关,状态与区间有关。 题目1 :数字三角形。 解题思路:直接DP即可, f[i][j] 可以来自 f[i-1][j] + a[i][j] 和 f[i-1][j-1] + a[i][j] ,注意 f[i-1][j] 不存在的情况(最后一个点)和 f[i-1][j-1] 不存在的情况(第一个点)。

    2024年02月04日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包