算法笔记第一天

  • 变量类型:
    1)int:绝对值在10^9范围内的整数都可以定义为int型。
    2)long long:如果long long型赋大于 2^31-1 的值,则需要在初值后面添加 LL 否则会编译错误。
    3)对于浮点型来说,碰到浮点型数据都应该用double来存储。
    4)在C语言中,必须添加stdbool.h头文件。
  • 位运算符:
    一般的,无穷大的数 INF 可以设置成如下语句:
const int INF = (1 << 30)- 1;
const int INF = 0x3fffffff;
  • 常见数据类型变量的scanf格式符
数据类型            格式符              举例
int                 %d                 scanf("%d", &n);
long long           %lld               scanf("%lld", &n);
float               %f                 scanf("%f", &n);
double              %lf                scanf("%lf", &n);
char                %c                 scanf("%c", &n);
(char数组)字符串     %s                 scanf("%s", str);
  • 常见数据类型变量的printf格式符
数据类型            格式符              举例
int                 %d                 printf("%d", &n);
long long           %lld               printf("%lld", &n);
float               %f                 printf("%f", &n);
double              %f                 printf("%f", &n);
char                %c                 printf("%c", &n);
(char数组)字符串     %s                 printf("%s", str);
  • 三种实用的格式输出
    (1)%md 不足m位,右对齐输出m,前导空格,超过m位保持原样输出。
    (2)%0md 不足m位,右对齐输出m,前导0,超过m位保持原样输出。PAT中出现00001这样的ID则可以在输出上做处理 ^_^
    (3)%.mf ,样例如下:
int main(){
    double d1 = 12.3456789;
    printf("%.0f\n", d1);
    printf("%.1f\n", d1);
    printf("%.2f\n", d1);
    printf("%.3f\n", d1);
    printf("%.4f\n", d1);
    printf("%.5f\n", d1);
}
output :
12
12.3
12.34
12.345
12.3456
12.34567
  • 常用的数学函数
int main(){
    //  fabs(double x),对double型变量取绝对值
    double db = -12.34;
    printf("%.2f\n", fabs(db));
    //  输出12.34
    
    //  floor(double x)和ceil(double x),分别为向下取整,向上取整,返回类型为double
    double db1 = -5.2, db2 = 5.2;
    printf("%.0f %.0f\n", floor(db1), ceil(db1));
    printf("%.0f %.0f\n", floor(db2), ceil(db2));
    /*  输出:
        -6 -5
        5 6
    */
    
    //  round(double x),对double型变量四舍五入
    double db3 = round(3.40);
    double db4 = round(3.50);
    double db5 = round(3.55);
    printf("%d, %d, %d\n", (int)db3, (int)db4, (int)db5);
    //  输出:3 4 4
    return0;
}
  • Note:如果数组较大,大约10^6级别,则需要把数组定义在主函数的外部,否则会使得程序异常退出。
  • memset( 数组名, 值, sizeof(数组名) ); 需要string.h头文件, 一般赋 0 或 -1 ,且执行速度快,赋其他值用fill()函数

猜你喜欢

转载自www.cnblogs.com/zjsaipplp/p/10548769.html