总结
昨日刷了入门结构,发现有很多基础知识不牢固,总结如下:
- main函数里要包含return 0;
- 在打印格式化输出时,printf要比cout好一些;
- cin自带空格,cout的输出要自己加空格作为分隔符;
- 格式化输出
符号 | 含义 |
---|---|
%c | char型 |
%s- | string型 |
%f | 浮点类型 |
%lf | double浮点类型 |
%.nf | 保留小数点n的浮点类型 |
%02d | 在整数前面不够两位补0,如7为07,17为17,0为00 |
%3d | 表示输出3位整型数, 不够3位右对齐; |
- ASCLL中65是A,97是a,
- 如果输入是char型,那么强转为int是这个输入的ASCLL码值,对ASCLL码值强转为Char为此ASCLL码值对应的值;
char a;
cin>>a;
cout<<char(int(a)-32);
return 0;
- 反转可以用reverse,接收用string或double,例如:
//输入一个不小于 100100 且小于 10001000,同时包括小数点后一位的一个浮点数,例如 123.4123.4 ,要求把这个数字翻转过来,变成 4.3214.321 并输出
#include <iostream>
#include <string>//string需要
#include <algorithm>//reverse需要
using namespace std;
int main() {
string a;
cin >> a;
reverse(a.begin(),a.end());//reverse(reverse( 数组名 .begin().begin() ,, 数组名 .end().end() ););
cout << a;
return 0;
}
- 整数相除只取整数,如1/2为0,要想为0.5需要1.0/2,多项式拼接时一定要加();
- #include 里有sqrt开根号。
- 得到一个数的个位数 x%10,得到一个数的十位数为(x/10)%10,百位为x/100 取余用算必须是左右都为整数;
- 一些数组的基础知识
cout<<"二维数组所占用的内存空间为"<<sizeof(arr)<<endl;
cout<<"二维数组第一行所占用的内存空间为"<<sizeof(arr[0])<<endl;
cout<<"二维数组第一个元素占用的内存为"<<sizeof(arr[0][0])<<endl;
cout<<"二维数组行数为"<<sizeof(arr)/sizeof(arr[0])<<endl;
cout<<"二维数组的列数为"<<sizeof(arr[0])/sizeof(arr[0][0])<endl;
cout<<"二维数组的首地址为:"<<arr<<endl;//和第一个元素的首地址一样 和第一行的首地址也一样`
12.算小时:总的分钟数/60, 算到几分钟:总的分钟数%60,时间输出的简便办法:
int h = t2 / 60;
int m = t2 % 60;
printf("%02d:%02d",h,m);
13.int类型是向下取整,2.4取2,向上取整是ceil(): t=ceil(s/v)
14.pi使用:
#include <math.h>
#define PI acos(-1)
15.有时可以让极端情况套在if语句里,比如当num<1时有极端情况的值,我们判断后直接输出需要的值即可
16.round函数对浮点数四舍五入,需要包含头文件<math.h>,比如大象至少要和几桶水,2.4桶也应该为3桶,2.9也该为三桶水,这里用向下取整不合适
有两种办法:
1.cout <<ceil(num)//直接向上取整
2.cout <<round(num+0.4)//四舍五入函数2.0+0.4还为2桶,2.1+0.4为3桶