zoukankan      html  css  js  c++  java
  • 白书杂七杂八

    1. Q:如何引用pi的精确值?

    A:

    #include <math.h>
    int main(){
        const double pi = acos(-1.0);
        ...
    }

    2. Q:如何在屏幕上打印出"%d"? What about " "?

    A:

    printf("%%d");
    printf("\n");

    3. Q:如何为程序计时?

    A:

    #include <time.h>
    int main(){
        printf("Time used = %.2f
    ",(double)clock() / CLOCKS_PER_SEC);
    }

    + “管道” Windows--> echo 输入数据 | 程序名称

    4. Q:如何输出长度为n的数字?

    A:

    printf("%*d",n,x);

    5. Q:如何实现流的加速?

    A:

    关闭和stdio的同步,即调用ios::sync_with——stdio(false)。

    6. Q:gcd(a,b)的最多递归层数?

    A:4.7815lgN+1.6723 递归层数最多的是gcd(Fn, Fn-1) 为Fibonacci数列相邻两项

    7. Q:结构体的正确用法

    A:

    typedef struct{ double x, y; }Point;
    Point a,b;
    a.x+b.x...

    8. Q:如何求nCm?

    A:

    1)因为有nCm=nC(n-m)

    if(m<n-m) m=n-m;

    2)factorial(m+1,...,n)/factorial(1,...,n-m)

    9. 用int* a 声明的变量 a 是指向 int 型变量的指针。赋值 a = &b 的含义是把变量的地址存放在指针 a 中,表达式 *a 代表 a 指向的变量,既可以放在赋值符号的左边,也可以放在右边

    注意:*a 是“a 指向的变量”,而不仅仅是“a 指向的变量所拥有的值”。例如 *a = *a + 1 就是让a 指向的变量自增1。甚至可以把它写成 (*a) ++。注意不要写成 *a ++,因为“++”运算符的优先级高于“取内容”运算符“*”,实际上会被理解为*(a ++)。

    char * const *(*next)的含义:

    next 是一个指向函数的指针,该函数返回一个指针,该指针指向一个只读的指针,此指针指向一个字符变量。

    用指针实现swap():

    #include <stdio.h>
    int swap(int* a, int* b){
        int t;
        t = *a;
        *a = *b;
        *b = t;
    }
    int main(){
        int a,b;
        scanf("%d %d",&a,&b);
        swap(&a, &b);
        printf("%d %d",a,b);
        return 0;
    }

    10. 把数组作为参数传给一个函数时,只有数字的首地址作为指针传给了函数。

    void name(int a[]) <=> void name(int* a)

    Link: 这就是为什么在快排中,qsort(a,a+n+1); 虽然写的是a 但真正传给函数的是a 的首地址,指针a + 1 指向a[1]

  • 相关阅读:
    L1-018 大笨钟 (10分)
    L1-017 到底有多二 (15分)
    L1-016 查验身份证 (15分)
    L1-015 跟奥巴马一起画方块 (15分)
    L1-014 简单题 (5分)
    L1-013 计算阶乘和 (10分)
    L1-012 计算指数 (5分)
    L1-011 A-B (20分)
    L1-010 比较大小 (10分)
    L1-009 N个数求和 (20分)
  • 原文地址:https://www.cnblogs.com/peccavi/p/4974373.html
Copyright © 2011-2022 走看看