练习:求最大公约数(使用递推)
#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;
}