C/C++基础学习笔记
1.基本数据类型
整型:short ,int , long , long long
我们比较常用的是int 和 long long ,为什么会常用long long ,因为它能表示更大的数据范围。
int 是占4个字节,1个字节8位,所以int的范围是(-2^31 ~ 2^31-1)
long long 占8个字节 取值范围 (-2^63 ~ 2^63-1)
#include<cstdio>
#include<cstdlib>
#include<iostream>
using namespace std;
int main()
{
int n;
printf("int 表示的最大值%dn",INT_MAX) ;//2147483647
printf("long long表示的最大值%lldn",LONG_LONG_MAX);//9223372036854775807
/*int m =63;
long long a = 1;
while(m--)
{
a*=2;
}
printf("%lldn",a-1);//**** long long的最大值 */
return 0;
}
long long 表示的 int大得多得多。
浮点型 float ,double
通俗的讲就是能表示小数部分,float 占用4个字节,double 占用8个字节,所以double能比float表示更大的范围
小数点的处理
比如保留三位小数,并四舍五入
%.3lf 就是保留三位小数
double a = 13.58465;
// 直接输出
printf("%.3lf",a);//会自动进行四舍五入
// 如果自己计算 四舍五入
a = (int)(a*1000 + 0.5)/1000.0;//.0是能讲int再次转为浮点型
printf("%lf",a);
奥赛一道题
#include<stdio.h>
int main()
{
int a,b;
scanf("%d%d",&a,&b);
double c = a*1.0/b;//注意要*1.0 假如5/7 因为int类型会抹去小数部分就会输出0
//double c = a / b;
printf("%.9lf",c);
return 0;
}
布尔类型
C语言中没有布尔类型,但是C++中有。
C++中bool类型的值只有两个,true 和 false 代表真和假
在C语言中想要表示真假可以用非0和0表示,通常用1和0
也可以定义成true 和 false
// c
#include<stdio.h>
#define true 1
#define false 0
int main()
{
if(true) printf("1");
else printf("0");
return 0;
/*
结果输出1
*/
}
#define 就是宏定义 上面就是将true定义为1,false定义0
字符型
char ,可以读入的类型为字符类型
补充一下字符A的ascll码为65 ,a的ascll码为97,字符0的ascll码为48
printf("%dn",'A');//65
printf("%d",'a');//97
printf("%d",'0');//48
所以推广出来,大小写字母转换差了32,0-9 字符想要转为整数只需减去48或者'0'.
洛谷一道字符小写转大写的题
#include<stdio.h>
int main()
{
char c ;
scanf("%c",&c);
printf("%c",c-32);
return 0;
}
2.输入
这里主要先说一下scanf,cin是C++的读入方式,相较于scanf速度会慢一点,到以后开始刷题的时候就会深刻体会到,scanf非常的神奇尤其是它的读入,下面就开始举一些例子
正常的读入我就不过多说,前面的例子都有设计
比如题目要求读入的格式 6/8 7/9 求6/8+7/9的和 你要怎么获取到6 7 8 9呢
这时候scanf的格式控制的优点就显示出来了,见下
#include<stdio.h>
int main()
{
int a,b,c,d;
scanf("%d/%d %d/%d",&a,&b,&c,&d);
printf("%d %d %d %d",a,b,c,d);
return 0;
}
同(7,8) (9,10) 怎么获取7 8 9 10呢
#include<stdio.h>
int main()
{
int a,b,c,d;
scanf("(%d,%d) (%d,%d)",&a,&b,&c,&d);
printf("%d %d %d %d",a,b,c,d);
return 0;
}
有些题的读入就会设计到很多没用的信息,所以我们正好可以通过scanf给读取掉,因为输入的格式是要按照scanf引号里面的格式输入的.
持续更新....
如有错误,请大佬们斧正!!!