c的循环小案例(取随机数)

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在循环当中被多次重新赋值了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Modify_QmQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值