目录
寒假自学用,记录Acwing题目。
语言:C++
#include <iostream> //头文件
using namespace std; //使用std命名空间,解决命名冲突
int main() //程序入口(函数入口)
{
cout<<"Hello World!"<<endl; //程序主体
return 0; //最后返回0
}
常见类型:
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;
}
以下是菜鸟网站中给出的数据类型表格:
在所有算法比赛中,所有能够用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;
}
>? 输入两个整数,求这两个整数的和是多少。
输入格式
>? 输入两个整数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;
}
已通过测试。
>除法运算
#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;
}
看看输出结果:
分为隐性转换和显式转换
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;
}
结果: