C程序设计

gcc、gdb

整数/整数=整数,浮点数/浮点数=浮点数,整数-浮点数=浮点数

变量在未赋值之前的值是不确定的。特别地,它不一定等于0.

n++会使用加1前的值计算表达式,++n会使用加1后的值计算表达式

比较大的数组尽量声明在main函数外,否则程序可能无法运行

fgetc(fin)读取一个打开的文件fin,读取一个字符,返回一个int值,如果要从标准输入读取一个字符,可以用getchar,等价于fgetc(stdin),fgets(buf,maxn,fin)读取完整的一行

调用栈(Call stack)描述 函数之间的调用关系,调用栈由栈帧(Stack Frame)组成,每个栈帧对应着一个未运行完的函数,在gdb中可以用backtrace命令打印所有栈帧信息。若要用p命令打印一个非当前栈帧的局部变量,可以用frame命令选择另一个栈帧

把数组作为参数传递给函数时,实际上只有数组的首地址作为指针传递给了函数,需要另加一个参数表示元素个数

若p是指针,k是正整数,p+k就是指针p后面第k个元素,p-k是p前面的第k个元素

#include 
#include 
#define INF 1000000000
#definr maxn 105
int main()
{
    freopen("data.in","r",stdin);
    freopen("data.out","w",stdout);
    int a,b,n=0,m,min=INF,max=-INF,x;

    FILE *fin,*fout;
    fin = fopen("data.in","rb");
    fout = fopen("data.out","wb");
    while(fscanf(fin,"%d",&x)==1 && n)
        fprintf(fout,"%d %d",min,max);
    fclose(fin);
    fclose(fout);
    
    scanf("%d%d",&n,&m);
    a = (4*n-m)/2;
    b = n-a;
    if (m%2 ==1 || a<0 ||b<0)
        printf("No answer\n");
    else
        printf("%d %d\n",a,b);
    
    for(int i=1;i<=n;i++)
    {
        printf("%d\n",i);
        if (i<10) continue;
        if (i>100) break;
    }
    
    long long n1 = n;
    int count=0
    while(n>1)
    {
        if (n%2==1) n=n*3+1;
        else n/= 2;
        count++;
    }
    
    int f = floor(sqrt(n)+0.5);
    printf("time used = %.2f\n",(double)clock()/CLOCKS_PER_SEC);
    
    
    int a[maxn];
    while(scanf("d",&x)==1)
        a[n++]=x;
    
    int b[maxn][maxm];
    tot = b[x=0][y=n-1] =1;
    
    char s[20];
    scanf("%s",s);
    if(strchr(s,"a"))
        sprintf(s[strlen(s)-1]);
    
    struct Point{double x,y;};
    double dist(struct Point a,struct Point b)
    {
        return hypot(a.x-b.x,a.y-b.y);
    }
    
    
    typedef struct{double x,y;}Point;
    double dist(Point a,Point b)
    {
        return hypot(a.x-b.x,a.y-b.y);
    }
    
    return 0
}

#include
void swap(int*a,int*b)//用int*a声明的变量a是指向int型变量的指针
{
    int t =*a;*a=*b;*b=t;
}
int main()
{
    int a=3,b=4;
    swap(&a,&b);//变量名前面加&得到的是该变量的地址
    printf("%d %d\n",a,b);
    return 0;
}

你可能感兴趣的:(C程序设计)