1.猜数
#include <stdio.h>
int main(){
//srand((unsigned)time(NULL));
int number = rand()%100+1;
int count=0;
int guess =0;
do {
printf("请猜:");
scanf("%d",&guess);
if(guess < number){
printf("抱歉,您猜的数过小!\n");
}else if(guess > number){
printf("抱歉,您猜的数过大!\n");
}
count++;
}
while(guess != number);
printf("恭喜您,猜对了,这个数是%d,您一共猜了%d次",number,count);
return 0;
}
在int number = rand()%100+1; 取随机数的时候,一直运行会发现一个问题,这个数是固定不变的,因为rand()函数是一个伪函数,这个问题怎么解决呢?
我们只需要用当前时间做种子获取随机数即可
srand((unsigned)time(NULL));
加上这一句代码,也就是在上面代码中注释的一句,而unsigned只是一个参数而已
看下运行结果
取随机数的第二个代码,依旧是使用当前时间
#include <stdio.h>
int main(){
srand(time(0));
int a =rand ();
printf("%d",a);
return 0;
}
2,整数取逆
输入一个整数,输出它的逆顺序,例:输入1234则输出4321
#include <stdio.h>
int main(){
int x;
int a =0;
int ret = 0;
printf("请输入一个整数:");
scanf("%d",&x);
while(x>0){
a = x % 10;
ret = ret *10 + a;
x/=10;
}
printf("这个整数的逆是:%d",ret);
return 0;
}
3 求对数log2
#include <stdio.h>
int main(){
//求log2 X
int a=0;
int x;
printf("请输入一个数:");
scanf("%d",&x);
int t = x ;//在这里用一个中间变量保存好输入的X
while(x>1){
x/=2;
a++;
}
printf("log2 %d = %d",t,a);//最后输出的用t而不用x是因为x在循环当中被多次重新赋值了
return 0;
}
int t = x ;//在这里用一个中间变量保存好输入的X
printf(“log2 %d = %d”,t,a);//最后输出的用t而不用x是因为x在循环当中被多次重新赋值了