c语言学习笔记

4 阅读1分钟

练习:求最大公约数(使用递推)

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

形参(定义函数时,()中的参数)就是函数内部的定义的变量

实参(调用函数时,()中的值)传递给形参时,就是赋值

定义在函数之外的变量,叫全局变量,所有的函数都可以访问

定义在函数之内的变量,叫局部变量,只有在函数的内部可以访问

函数会优先使用局部变量

time.h

time()函数,获取当前的时间戳

示例:time(NULL)

返回从协调世界时1970年1月1日00:00:00到当前时刻的毫秒数

stdlib.h

随机数函数

Xn+1=aXn + b mod m

在前一个随机数的基础上,通过一系列的计算得到下一个

需要一个种子

srand(种子)

int r1 =rand()

即可获取伪随机数(固定不变)

srand(time(NULL))

int r1 =rand()

即可获取随机数(会变化)

例:获取1~100间的一个随机数

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(){
    srand(time(NULL));
    int r1=rand()%100 +1;
    printf("%d",r1);
    return 0;
}

练习:猜数字游戏

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(){
    a:srand(time(NULL));
    int r1=rand()%100 +1;
    int n,i=0;
    printf("猜数字游戏,输入101退出\n");
    while(1){
        i++;
        printf("请输入一个1~100内的数字:\n");
        scanf("%d",&n);
        if(n==101){
            printf("已退出");
            return 0;
        }
        if(n==r1){
            printf("恭喜你猜对了!\n");
            break;
        }else if(n>r1){
            printf("猜大了!\n");
        }else{
            printf("猜小了!\n");
        }
    }
    printf("共输入%d次",i);
    goto a;
    return 0;
}