Acwing-语法基础练习

news2024/11/16 21:25:40

目录

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 整数类型:取值范围是(-2^{31})-(2^{31}-1)

float 单精度浮点数: 有6-7位有效数字,也可以使用科学计数法表示如:1.489e31.489*10^{3}

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

不常见类型:

long long : 是int类型的扩展版,表示范围为(-2^{63})-(2^{63}-1)

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;
}

以下是菜鸟网站中给出的数据类型表格:


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;
}

已通过测试。


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;
} 

看看输出结果:


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;
} 

结果:

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

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

相关文章

Android13系统导航栏添加隐藏导航栏功能按钮

最近有个项目&#xff0c;客户要求在底部导航栏中添加一个可以隐藏整个导航栏的功能按钮&#xff0c;效果如下图&#xff1a; 具体方法如下&#xff1a; 1. 在frameworks/base做如下修改&#xff1a; diff --git a/packages/SystemUI/res/layout/navigation_bar.xml b/packag…

后端学习:数据库MySQL学习

数据库简介 数据库&#xff1a;英文为 DataBase&#xff0c;简称DB&#xff0c;它是存储和管理数据的仓库。   接下来&#xff0c;我们来学习Mysql的数据模型&#xff0c;数据库是如何来存储和管理数据的。在介绍 Mysql的数据模型之前&#xff0c;需要先了解一个概念&#xf…

YOLO自制数据集及训练

使用 Make Sense 网站进行标注 https://www.makesense.ai/可以让AI帮你先标一下 一定要点一下 + ,不然不会加进去 导出标签

混淆矩阵、准确率、查准率、查全率、DSC、IoU、敏感度的计算

1.背景介绍 在训练的模型的时候&#xff0c;需要评价模型的好坏&#xff0c;就涉及到混淆矩阵、准确率、查准率、查全率、DSC、IoU、敏感度的计算。 2、混淆矩阵的概念 所谓的混淆矩阵如下表所示&#xff1a; TP:真正类&#xff0c;真的正例被预测为正例 FN:假负类&#xf…

OSI七层模型 | TCP/IP模型 | 网络和操作系统的联系 | 网络通信的宏观流程

文章目录 1.OSI七层模型2.TCP/IP五层(或四层)模型3.网络通信的宏观流程3.1.同网段通信3.2.跨网段通信 1.OSI七层模型 在计算机通信诞生之初&#xff0c;不同的厂商都生产自己的设备&#xff0c;都有自己的网络通讯标准&#xff0c;导致了不同厂家之间各种协议不兼容&#xff0…

Linux文本三剑客---grep

grep&#xff08;从文本或字符串种过滤特定内容。&#xff09; 格式&#xff1a;Usage: grep [OPTION]... PATTERNS [FILE]... 常用选项&#xff1a; -E 等价于 egrep 扩展正则 -i 忽略大小写 -w 匹配单词 -o 仅显示匹配内容 -r 递归匹配 -c 统计匹配的行数 -v 取反 -n 行号 -A…

ABAP 状态栏排除某些按钮

ABAP 状态栏排除某些按钮 GUI State状态栏 在状态栏这里有这些按钮&#xff0c;现在在导出界面要排除掉这些按钮&#xff1a; 将要排除的按钮追加到gt_code内表&#xff1a; gt_fcode功能码内表的定义 DATA:gt_fcode TYPE TABLE OF sy-ucomm,完整程序 *&---------…

SpringBoot不同的@Mapping使用

文章目录 一、介绍二、使用 一、介绍 一般Mapping类注解在Spring框架中用于将HTTP请求映射到对应的处理器方法。它们各自对应于不同类型的HTTP方法&#xff0c;主要用于RESTful Web服务中。以下是每个注解的作用&#xff1a; GetMapping: 用于映射HTTP GET请求到处理器方法。通…

Android读写文件,适配Q以上

Android Q升级了文件系统&#xff0c;访问文件不仅仅是说动态权限了&#xff0c;有各种限制。权限什么的就不赘述了&#xff0c;下面介绍一下在10以上的系统中访问文件。 首先是打开文件管理器 /*** 打开文件管理器 存储卡和外接U盘都可以访问*/public void openFileManager()…

【揭秘】ForkJoinTask全面解析

内容摘要 ForkJoinTask的显著优点在于其高效的并行处理能力&#xff0c;它能够将复杂任务拆分成多个子任务&#xff0c;并利用多核处理器同时执行&#xff0c;从而显著提升计算性能&#xff0c;此外&#xff0c;ForkJoinTask还提供了简洁的API和强大的任务管理机制&#xff0c…

Blender教程-编辑模式点线面的选择-06

一、新建立方体 ShiftA新建立方体用于演示 二、模式切换 按TAB键切换为编辑模式 点模式 在点模式下可以选择中物体的顶点。 线模式&#xff08;边模式&#xff09; 面模式 在熟悉编辑模式下的点线面基础操作以后&#xff0c;我们后续建模会以此为基础教程。

D. Epic Transformation(堆+贪心)

思路&#xff1a;我们删的策略是从次数多的数开始删&#xff0c;每次取两种不同的数&#xff0c;每种删去一个&#xff0c;然后放回堆中。 代码&#xff1a; void solve(){int n;cin >> n;map<int,int>mp;for(int i 1;i < n;i ){int x;cin >> x;mp[x] …

CAD-autolisp(二)——选择集、命令行设置对话框、符号表

目录 一、选择集1.1 选择集的创建1.2 选择集的编辑1.3 操作选择集 二、命令行设置对话框2.1 设置图层2.2 加载线型2.3 设置字体样式2.4 设置标注样式&#xff08;了解即可&#xff09; 三、符号表3.1 简介3.2 符号表查找3.2 符号表删改增 一、选择集 定义&#xff1a;批量选择…

ubuntu 20.04 更新 autoconf 版本

前言 由于最近打算交叉编译 python&#xff0c;依赖 libffi 库&#xff0c;而交叉编译 libffi 库&#xff0c;由于使用的是 github 上的 libffi&#xff0c;又提示 autoconf 版本太低了&#xff0c;所以&#xff0c;先更新 autoconf 的版本 当前 ubuntu 20.04 上安装的 autuco…

【数据分享】2015年泛第三极65国1km分辨率土壤侵蚀强度数据集(免费获取)

土壤数据是在环境、农业、生态等相关研究中都非常常用的数据&#xff01;我们之前发表过一篇介绍土壤数据来源的文章&#xff08;可查看之前推送的文章获悉详情&#xff09;&#xff01; 土壤侵蚀强度是土壤的重要属性&#xff01;本次我们给大家带来的是2015年泛第三极65国1k…

《合成孔径雷达成像算法与实现》Figure5.19

clc clear close all距离向参数 R_eta_c 20e3; % 景中心斜距 Tr 25e-6; % 发射脉冲时宽 Kr 0.25e12; % 距离向调频率 Fr 7.5e6; % 距离向采样率 Nrg 256; % 距离线采样点数 Bw abs(Kr*Tr); …

8.15合并区间(LC56)

算法&#xff1a; 和452. 用最少数量的箭引爆气球 (opens new window)和 435. 无重叠区间 (opens new window)都是一个套路。 这几道题都是判断区间重叠&#xff0c;区别就是判断区间重叠后的逻辑&#xff0c;本题是判断区间重贴后要进行区间合并。 步骤&#xff1a; 先排序…

自动化脚本不稳定,原来是软件弹窗惹的祸,2个方法解决!

很多同学在学习 App 自动化或者在项目中落地实践 App 自动化时&#xff0c;会发现编写的自动化脚本无缘无故的执行失败、不稳定。 而导致其问题很大原因是因为应用的各种弹窗&#xff08;升级弹窗、使用过程提示弹窗、评价弹窗等等&#xff09;&#xff0c;比如这样的&#xff…

nodejs下载 安装 配置环境

目录 1.下载 2、配置环境 1.下载 下载地址&#xff1a;https://nodejs.org/en/download/ 下载完成后&#xff0c;双击安装包&#xff0c;开始安装&#xff0c;一直点next即可。我把安装路径设置为 D:\Program Files\nodejs\ 安装完之后打开终端 windowR cmd 回车&#xff1…

C++:组合、继承与多态

面向对象设计的重要目的之一就是代码重用&#xff0c;这也是C的重要特性之一。代码重用鼓励人们使用已有的&#xff0c;得到认可并经过测试的高质量代码。多态允许以常规方式书写代码来访问多种现有的且已专门化了的相关类。继承和多态是面向对象程序设计方法的两个最主要的特性…