猜数游戏c语言
❶ c语言设计一个简单的猜数游戏:先由计算机“想”一个数请用户猜,如果用户猜对了,则计算机给出提示信息
//希望我的回答对你的学习有帮助
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intmain()
{
intx,magic,a=0,c=1;
charb;
do
{
srand(unsigned(time(NULL))); //为函数rand()设置随机数种子
magic=rand()%100+1; //magic为1~100间的一个数
printf("您每次游戏中,只有十次机会 ");
while(a<=10)
{
scanf("%d",&x);
if(x>magic)
printf("Wrong,比magic大 ");
elseif(x<magic)
printf("Wrong,比magic小 ");
//elseif(x=magic) //这里的逻辑运算应该使用“==”
elseif(x==magic) //你应该是写错了
{
printf("Right ");
a=a+1;
printf("你猜了%d次了 ",a);
a=0; //猜对之后,应该对猜测的次数初始化
break;
}
a++;
printf("你猜了%d次了 ",a);
if(a==10)
{
a=0;
printf("Doyouwanttocontinue?(回答Y/N或者y/n) ");
//scanf_s("%c",&b); //这么使用,会将你在输入字符之前的
//空行(enter键)赋值给b,而不是你输入的Y/N/y/n
scanf("%c",&b); //而这种写法,%c前面的空格会使scanf忽略前面的enter键
//等待第一个非enter键元素读入
if(b=='y'||b=='Y')
c=1;
elseif(b=='n'||b=='N')
c=0;
break; //当猜测次数为10时,应当跳出
//这里不会自动跳出,因为a被初始化为0
}
}
}while(c==1);
return0;
}
scanf 里面没有空格的情况,程序会自动执行 10 次
❷ C语言:猜数问题!!
部分测试
❸ C语言编程 猜数游戏
#include
#include
//用到了rand函数,所以要有这个头文件
#include
//用到了time函数,所以要有这个头文件
int
main()
{
int
number;
//number用于存储随机数
int
guess=0;
//guess用于存储玩家猜的数
srand((unsigned)
time(null));//用系统时间作为rand函数使用的种子
number=rand()%100;
//随机除以100,取余数
number++;
//余数加1
printf("猜数字游戏\n");
printf("该数字在1到100之间\n");
while(guess!=number)
{
printf("请输入您所猜的数:");
scanf("%d",&guess);
//如果玩家猜的数较小,给予提示
if
(guess
number)
{
printf("大了\n");
}
}
//猜中则循环结束,输出猜中的数字
printf("猜对了,这个数字就是:%d\n",number);
return
0;
}
❹ c语言,编写一个猜数字游戏
源码如下:
/*File:guess.c*/
#include<stdio.h>/*standardinput&outputsupport*/
#include<stdlib.h>/*srand()rand()*/
#include<time.h>/*time()*/
/*宏定义*/
#defineNUMBER_LENGTH5/*随机数长度*/
#defineNUMBER_LIMIT10/*随机数限制,每一位0-9*/
#defineINPUT_LENTH128/*输入缓冲区大小*/
chargoal[NUMBER_LENGTH]={0};/*保存随机数*/
charflag[NUMBER_LIMIT]={0};/*保存随机数标志,保证不重复*/
charinput[INPUT_LENTH]={0};/*保存输入*/
/*初始化用于保存数据的数组*/
voidinitData()
{
inti=0;
while(i<NUMBER_LENGTH)
goal[i++]=0;
i=0;
while(i<NUMBER_LIMIT)
{
flag[i++]=0;
}
}
/*初始化用于保存缓冲区的数组*/
voidinitBuffer()
{
inti=0;
while(i<INPUT_LENTH)
input[i++]=0;
}
/*显示猜测结果*/
voiddisplay()
{
intcount=0;
inti=0;
while(i<NUMBER_LENGTH)
{
if(input[i]==goal[i])
{
printf("%c",'o');
count++;
}
else
{
printf("%c",'x');
}
i++;
}
printf(" RIGHT:%dbit(s) ",count);
if(count==NUMBER_LENGTH)
{
printf("Youwin!Thenumberis%s. ",goal);
exit(0);
}
}
/*生成随机数*/
voidgeneral()
{
/*以时间作为时间种子保证生成的随机数真正具有随机性质*/
srand((unsignedint)time(NULL));
inti=0;
while(i<NUMBER_LENGTH)
{
chartmp;
do
{
tmp='0'+((i!=0)?(rand()%10):(1+rand()%9));
}while(flag[tmp]!=0);
flag[tmp]=1;
goal[i++]=tmp;
}
}
/*输入方法,用于猜测*/
voidguess()
{
printf(": ");
scanf("%s",input);
display();
initBuffer();
}
/*主函数,程序主框架*/
intmain(intargc,constchar*argv[])
{
initData();
initBuffer();
general();
while(1)guess();
return0;
}
==============================================
运行结果见附图,希望我的回答能够对你有所帮助。
❺ 猜数游戏c语言
#include<stdio.h>
#include<stdlib.h> //随机数生成函数srand()与rand() 所需的头文件
#include<time.h> //time()所需的头文件
int main()
{
int sysdata;//系统生成的数据
int n; //所猜的数据
int sum = 0;//记录猜的次数
srand((unsigned)time(NULL)); //随机数发生器初始化函数,以时间为种子
sysdata = rand()%100+1; //随机生成1到100的随机数
printf("退出程序请按:ctrl + c!\n");
while(1)
{
printf("请输入你猜的数据(1-100): ");
if(scanf("%d",&n) != 1) //用于判断用户是否结束游戏
{
break; //跳出while循环,结束游戏
}
sum++; //每输入一次数据,猜的次数加1
if(sum == 10) // 当猜的次数大于10次的时候重新生成新的随机数
{
if(n == sysdata) //最后一次猜数正确,输出结果,结束游戏
{
printf("猜数正确,总共猜了%d次!\n",sum);
break; //跳出while循环,结束游戏
}
else //最后一次猜数不正确则重新开始游戏
{
printf("猜数次数超过%d次,重新开始游戏!\n",sum);
sysdata = rand()%100+1; //随机生成1到100的随机数
sum = 0;
}
}
else
{
if(n == sysdata)
{
printf("猜数正确,总共猜了%d次!\n",sum);//猜数正确,结束游戏
break; //跳出while循环,结束游戏
}
else if(n > sysdata)
{
printf("你猜的数据太大!\n");
}
else
{
printf("你猜的数据太小!\n");
}
}
}
printf("猜数游戏结束!\n");
return 0;
}
测试结果:
退出程序请按:ctrl + c!
请输入你猜的数据(1-100): 50
你猜的数据太小!
请输入你猜的数据(1-100): 75
你猜的数据太小!
请输入你猜的数据(1-100): 85
你猜的数据太大!
请输入你猜的数据(1-100): 80
你猜的数据太小!
请输入你猜的数据(1-100): 82
你猜的数据太小!
请输入你猜的数据(1-100): 84
猜数正确,总共猜了6次!
猜数游戏结束!
Press any key to continue
❻ 用C语言编写猜数游戏
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main()
{
int n,g,i=10;
srand((unsigned)time(NULL));
n=rand()%100+1;///老颂岩///////////////////////////随机数
while(i--)
{
printf("Input A Number: ");/////////樱升///////////侍御////提示输入
scanf("%d",&g);
if(n==g)
break;
else if(g<n)
printf("Lower Than That\n");
else
printf("Higher Than That\n");
}
if(i==0)
printf("Game Over!\n");//////////////////////////////10次
else
printf("%d Times\n",10-i);///////////////////////////猜中
return 0;
}
❼ C语言猜数游戏(高低游戏)
#include <stdio.h>
#include <stdlib.h>
void clear()
{
scanf("%*[^\n]");
scanf("%*c");
} //清除输入缓冲区
void Inspect(int number,int cn)
{
int innum,flag=0;
while(cn<7 && flag==0){
printf("输入猜测的数据(0~99):");
scanf("%d",&innum);
if(innum==number)
{
flag=1;
printf("恭喜,猜扒搏键对了,共用了%d次!\n",cn);
}
else if(innum>number)
{
cn++;
printf("很遗憾,你猜错了,是更小的数,你还有%d次春巧机会!\n"银旁,7-cn);
}
else
{
cn++;
printf("很遗憾,你猜错了,是更大的数,你还有%d次机会!\n",7-cn);
}
}
if(cn==7){
printf("你已经没有机会尝试了,请重新再来\n");
printf("%d\n",number);
}
} //游戏主体判断函数
int main()
{
int number=rand()%100;
int cn=0;
char tp='y';
Inspect(number,cn);
while(tp=='y'){
printf("你还想继续尝试吗?(y/n):");
clear(); //清除输入缓冲区,防止之前的输入影响后面的代码执行
scanf("%c",&tp);
if(tp=='y') {cn=0;Inspect(number,cn);}
}
return 0;
}
❽ 猜数字C语言
其实这个程序很简单,思路很清晰
首先产生一个随机的四位数,且每位都不相同
int a[10]={0,1,2,3,4,5,6,7,8,9};
int b,c,i,t;
for(i=0;i<100;i++) //思路就是产生两个10以内的随机数,交换a中这两个下标的数值,
{ //经过多次交换后,着a中的这10个数就打乱了次序,就像是随机数了
b=rand()%10; //这个交换多少次,随便了,只要打乱就可以
c=rand()%10;
if(b!=c)
{t=a[b];a[b]=a[c];a[c]=t;}
}
接着取出连续的a中的4个数,这样就是那个随机数
int suiji[4];
for(i=0;i<4;i++)
suiji[i]=a[i]; //这样随即中就是四个要猜的数,
要是想要第一位不是0,可以这么计算
int j;
for(i=0,j=0;j<4;i++)
{
if(a[0]==0)
continue;
suiji[j++]=a[i];
}
接下来就是输入数据,
int shuru,shr[4],s;
while(1)
{
scanf("%d",&shuru);
s=shuru;
i=3;
while(s)
{
shr[i--]=s%10;
s/=10;
}
if(shuru>1000&&shuru<9999&&shr[0]!=shr[1]&&shr[0]!=shr[1]&&shr[0]!=shr[2]&&shr[0]!=shr[3]&&shr[1]!=shr[2]&&shr[1]!=shr[3]&&shr[2]!=shr[3])
//shuru在1000~9999之间并且各各位不相等,就跳出,否则继续输入
break;
else
printf("Error");
}
接着这个输入的数据和这个随机数的比较了,其实很简单
m是位置和数字都对的。n是数字对,但位置不对的
int m=0,n=0;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(shr[i]==suiji[j])
n++;
for(i=0;i<4;i++)
if(shr[i]==suiji[i])
m++;
n-=m;
接着是打印输入的数和mn(这个就是判断的结果)这个我就不用再写了吧
清屏用system("cls");
最后是总装,先产生四位的随机数,接着用一个大循环把输入和比较还有打印判断结果包含进去。
退出这个循环的条件有两个,一个是m=4,一个是到了规定的次数
❾ C语言编程:编写一个猜数的游戏,系统自动产生一个随机数,你来猜,程序给出提示,直到猜对为止。
import java.util.*;
class Assignment8{
public static void main(String[]args){
Scanner sc=new Scanner(System.in);
int x=(int)(Math.random()*100);//生成一个0~100的随机数
int y=-1;
System.out.println("已生成0~100的随机整数,请输入您所猜的数:");
while(x!=y)
{
y=sc.nextInt();
if(y>x)
{
System.out.println("输入的数过大");
}
else if(y<x)
{
System.out.println("输入的数过小");
}
}
System.out.println("正确!该随机数是"+x);
sc.close();
}
}
(9)猜数游戏c语言扩展阅读:
while循环的格式:while(表达式){语句;}
while循环的执行顺序:当表达式为真,则执行下面的语句,语句执行完之后再判断表达式是否为真,如果为真,再次执行下面的语句,然后再判断表达式是否为真??就这样一直循环下去,直到表达式为假,跳出循环。
例:
int a=NULL;
while(a<10){
a++;//自加
if(a>5)//不等while退出循环,直接判断循环
{break;//跳出循环}
}
结果:结束后a的值为6。