CSP算法题基础(1)
2021-03-04 13:27
标签:not can ace lin 工资 算子 bsp 支持 str C++程序里面会添加许多头文件,头文件的格式一般是 我们先接触这两个头文件cstdio和iostream,其中cstdio包含了两个函数printf输出函数和scanf输入函数;第二个头文件是iostream,主要包含了cin,cout,endl三个函数。 bool false/true 1Byte char 1Byte int范围是\([-2^{31},2^{31}-1]\) 一共是\(2^{32}\)个数。十进制下这些数是-2147483648 to 2147483648。 4Byte float 1.23,1(整数也可以被浮点数表示)。此外,还支持科学计数法,比如1.23e2就是\(1.23*10^2\) ,float的精度比较低,通常只有6-7位有效数字 4Byte double 双精度浮点数,它的精度比较高,通常是15-16位有效数字 8Byte long long (int的扩展版) 它的表示范围是\([-2^{63},2^{63}-1]\) 8Byte long double(double的扩展版),它的精度是18-19位 16Byte 常用编辑器显示float和double类型一般是6位,不足6位补0,超过6位,四舍五入截断。 使用经验:最好使用int,然后使用double,最后使用float 注意数值整数也有类型: 输入输出算法 简单输入输出格式: segmentation fault(数组越界) 一次有多个输出 利用scanf和printf进行输入输出 利用printf和scanf需要判断输入输出类型,但是利用cin、cout不用判断输出输入类型。 发现当输入输出都是float的时候,确实精确度(有效位数)是7位 当我们想保留两位小数的时候,需要对输出进行修改 char类型 %c读入空格,输出就是空格 double类型 对scanf的标准输入结束标记应该是return键,像上图输入第一个数据后,按下return键或者按下空格(对照scanf输入字符串,此时的空格起的作用是分隔两部分输入),再接着输入第二个数 long long类型: 加减乘除以及取模运算 不同的变量类型之间可以相互转化 从低精度到高精度没有任何问题,从高精度到低精度会损失一些信息,仅此而已。 int(看成低精度) 转float,会白白提高精度; float转成int,会向下取整 int和char类型之间的转化 例题: 其他具体题目见acwing 注意还有一个头文件 abs函数被封装在 printf语句(在 格式化输出 %8.3lf 表示一共8位有效数字数,保留3位小数,在前面补空格; %08.3lf 表示一共8位有效数字,保留3位小数,在前面补充0; %-8.3lf 表示一共8位有效数字,保留3位小数,在后面补充空格 实现输入两个数,输出其中较大一个,不要使用库函数 输入三个数,利用判断结构,输出其中较大的一个数 输入一个0-100的分数,如果大于等于85,输出A;如果大于等于70,并且小于85,输出B;如果大于等于60,并且小于70,输出C;如果小于60,输出D 简易计算器,输入两个数以及一个算子符号,输出正确结果 注意:需要判断除数为0,以及不是+-*\的符号 判断闰年 三元素交换的swap函数手写 CSP算法题基础(1) 标签:not can ace lin 工资 算子 bsp 支持 str 原文地址:https://www.cnblogs.com/fennleo/p/14353159.htmlCSP算法题基础
1763#include
using namespace std; // 命令空间指的是 保证在同一命名空间里面,变量名不冲突即可。不同的命名空间里面的变量名是可以相同,因为命名空间不同。命名空间一般我们都是使用在较大项目中,这种项目的变量一般比较多,有使用价值,算法比赛中,意义不大。
long long m =13123123234LL; //对,必须对整数添加后缀进行说明该整数是longlong类型整数
long long m = 13123123234; //错,整数数值类型和变量类型不匹配,要是不添加的话,这个m可能就变成负数了
long double m = 231312.1312312lf // 对,数值末尾要添加标记,说明数值整数类型
#include
#include
#include
printf("%.2f %.2f\n",a+b,a*b);
int main(){
char a,c;
scanf("%c %c",&a,&c); //char类型对应的printf输出格式是 %c,注意%c是可能读入空格,键盘输入q w,输出q w
//键盘键入q ,输出就是q |。
printf("%c %c",a,c);
}
cin>>输入 和 标准输入输出scanf 相比,cin能够过滤掉空格,scanf不能过滤空格,cin效率比较低,但是scanf效率却高
int main(){
double a,b;
scanf("%lf%lf",&a,&b);
printf("%lf %lf",a,b);//对于double类型,标准输入输出格式是 %lf
}
int main(){
long long a,b;
scanf("%lld%lld",&a,&b);
printf("%lld%lld",a,b);
return 0;
/*
float %f
int %d
double %lf
char %c
long long %lld
*/
}//输入输出是%lld
#include
#include
#include
#include
#include
#include
#include
//用浮点数存在精度问题,建议转换成整数后用整数来做
#include
#include
#include
printf("%-5d",a);
printf("%-5d",b); //同样的可以这样理解-5d,是先输出数字,再输出空格,一共输出5个字符的位置,前面补空格
printf("%-5d",c); //输出格式如下
//除了补充空格,还可以补充字符,比如补充0
printf("%05d",a);
printf("%05d",b);
printf("%05d",c); //输出格式如下所示
printf("%5.1lf",f); //这里应该表示的是:浮点数固定宽度宽是5位(默认用空格填充),保留1位小数,这里的5位是包含小数点的一位,所以输出应该是: 12.3,刚好5位
#include
#include
#include
#include
#include
// a b c按照升序排列
int temp;
if(a > b){
temp = b;
b = a;
a = temp; //两两交换
}
if(a > c){
temp = a;
a = c;
c = temp;
}
if(b > c){
temp = b;
b = c;
c = temp;
}
上一篇:java 版本EChart使用
下一篇:Java网络编程