-
sscanf与sprint
- 均在stdio.h头文件下
-
sscanf用法
-
sscanf(str, "%d", &n); // 将str中内容以"%d"的格式写到n中
sprintf用法
sprintf(str, "n = %d, db = %.2f, str2 = %s\n", n, db, str2); //入 str 将数据按格式写
-
指针变量作为函数参数
-
swap函数
1 void swap(int* a, int *b) {
2 int temp = *a;
3 *a = *b;
4 *b = temp;
5 }
-
-
-
错误写法一
void swap(int* a, int *b) {
int* temp; // 错在定义temp时没有初始化
*temp = *a;
*a = *b;
*b = *temp;
}
-
错误写法二
void swap(int* a, int *b) {
int temp = a; // 地址只是副本,没法对数据产生实质性的影响
a = b;
b = temp;
}
-
结构体的初始化(构造函数)
- 可以设置多个构造函数
struct Point { // 结构体
int x, y;
Point() {}
Point(int _x, int _y) :x(_x), y(_y) {}
} pt[10];
- 在main函数里初始化
int num = 0;
for(int i=1; i<=3; ++i) {
for(int j=1; j<=3; ++j) {
pt[num++] = Point(i, j);
}
}
-
浮点数的比较
- 浮点数在计算机中计算并不总是准确,需要引入一个极小数eps来对这种误差进行修正
const double eps = 1e-8;
const double Pi = acos(-1.0); // π
#define Equ(a, b) ( fbs(a-b) < eps ) // 等于
#define More(a, b) ( a-b > eps ) // 大于
#define Less(a, b) ( a-b < (-eps) ) // 小于
#define MoreEqu(a, b) ( a-b > (-eps) ) // 大于等于
#define LessEqu(a, b) ( a-b < eps ) // 小于等于
|
请发表评论