猜数游戏
生成随机数
倒是这里暂时不需要完全理解,但是要会用,拿一个随机数还是非常常见的一个技巧的
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
srand(time(0));//这一行让每次运行的结果都不同
int a=rand();//只有这一行的话是伪随机,虽然生成了一个随机数,但是每次都是这个数
printf("%d",a);
return 0;
}
猜数游戏
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int guess;
srand(time(0));
int a=rand()%100+1;//只生成了1-100的数字,如果生成3-96的数也会了 a=rand()%94+3
// printf("%d\n",a);
scanf("%d",&guess) ;//这两行总是绑定在一起的,即输入一个数,次数就要加1
int count=1;
while(guess!=a)
{
if(guess>a)
{
printf("你猜的数大了\n");
}else
{
printf("你猜的数小了\n");
}
scanf("%d",&guess) ;
count++;
}
printf("恭喜你猜对了,你用了%d次猜对的",count);
return 0;
}
猜数游戏改进版
改进版中已经对人机交互的部分做了一些改良
//改进版,如果猜数游戏三次没猜对,我就不想玩了,就问我还要不要玩
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int guess,count=0;
int choose;
srand(time(0));//这一行让每次运行的结果都不同
int a=rand()%100+1;//只生成了1-100的数字,如果生成3-96的数也会了 a=rand()%94+3
printf("%d\n",a);//调试用
scanf("%d",&guess) ;
count++;
while(guess!=a)
{
if(guess>a)
{
printf("你猜的数大了\n");
}else
{
printf("你猜的数小了\n");
}
if(count==3)
{
printf("你三次都没猜对,如果继续玩请输入1,退出游戏请输入0\n");
scanf("%d",choose) ;
if(choose==0)
{
break;
}else if(choose!=1)
{
printf("请重新输入");
}
}
scanf("%d",&guess) ;
count++;
}
if (guess==a)
{
printf("恭喜你猜对了,你用了%d次猜对的\n",count);
}else
{
printf("没猜对");
}
printf("游戏结束");
return 0;
}
注意,这里的代码其实可以改进的地方是,在选择choose的时候不是用0和1,而是用Y和N,但这样子就需要用到字符的比较函数了,只能算是炫技,对代码没有实质性的改良,还有3第二章程序练习《百分制成绩转换为字母等级成绩》中也是可以用类似的技巧