⑴ c语言猜数游戏
scanf("%c",i);
没有取地址啊
而且c语言不允许在执行过程中定义新变量楼主的 char i应该定义在最上面
#include<stdlib.h>
#include<stdio.h>
#include"随机函数"//这个是你的头文件么--
main()
{
chari;
inta,b,c,d,x,y,z,h,n=0;
a=sui_ji()%10;
b=sui_ji()%10;
c=sui_ji()%10;
d=sui_ji()%10;
printf("猜数 ");
scanf("%d%d%d%d",&x,&y,&z,&h);
if(x==a)
{
printf("a是对的,");
n=n+1;
}
if(y==b)
{
printf("b是对的,");
n=n+1;
}
if(z==c)
{
printf("c是对的,");
n=n+1;
}
if(h==d)
{
printf("d是对的");
n=n+1;
} printf("共有%d个正确,错了%d个。输入r返回这4个数。",n,4-n);
scanf("%c",&i);
if(i=='r')
printf("这4个数为:%d,%d,%d,%d",a,b,c,d);
}
⑵ 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语言,编写一个猜数字游戏
源码如下:
/*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
#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语言猜数字游戏
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define random(x)
void main()
{
int zhucaidan();
void youxijieshao();
void bangzhu();
void kaishiyouxi();
int tuichu();
int choice,end=1;
system("color");
printf("**************************\n");
printf(" 游戏\n");
printf("**************************\n");
while(1)
{
choice=zhucaidan();
switch(choice)
{
case 1:youxijieshao();break;
case 2:bangzhu();break;
case 3:kaishiyouxi();break;
case 4:end=tuichu();break;
}
}
}
int zhucaidan()
{
int choice;
printf("\n *欢迎使用系统*\n");
printf("----------------------\n");
printf(" 1.游戏介绍\n");
printf(" 2.帮助\n");
printf(" 3.开始游戏\n");
printf(" 4.退出游戏\n");
printf("----------------------\n");
printf("其请选择功能模块,输入数字1-4:");
while(1)
{ scanf("%d",&choice);
if(choice>=1&&choice<=4) break;
else printf("输入数字不正确,请重新输入1-4:");
}
return choice;
}
void youxijieshao()
{
printf("\n猜数游戏是一款人机互动的小游戏,\n");
printf("在电脑提示的范围下进行猜数并用键盘输入电脑中。\n");
printf("电脑判断你所输入的数值与电脑默认给出的数值的大小并给出提示,\n");
printf("如果你所输入的数字不是电脑默认的数值则需要重新输入,直到正确为止!\n");
}
void bangzhu(){ printf("1.游戏规则:每个玩家有15次机会进行猜数,若15次之内还没猜出则退出程序!\n");
printf("2.游戏建议:玩家可用对半猜的方法进行游戏,逐渐缩小猜数范围,直到最后猜出正确答案!\n");
}
void kaishiyouxi()
{
int g,big=0,small=0;
int a=rand()%100;
srand(time(NULL));
printf("Computer number is given!Please input your number(0-100) is:\n");
while(1)
{ scanf("%d",&g);
if(g>a)
{
printf("your number is hign,try again\n");
big++;
}
else if(g<a)
{
printf("your number is low,try again\n");
small++;
}
else
{
if((big+small)<7)
{
printf("Congratulation!\n");
}
else if(((big+small)>7)&&((big+small)<15))
{
printf("I can bet you can do it better\n");
}
break;
}
}
printf("你猜对答案次数为:%d\n",(big+small));
select();
}
int tuichu()
{
int end;
end=0;
return end;
}
select()
{
char x;
while(1)
{
setbuf(stdin,NULL);
printf("是否退出?------y/n ");
scanf("%c",&x);
if(x=='y'||x=='Y')
exit(0);
else if(x=='n'||x=='N')
break;
}
}
⑹ C语言 猜数字游戏
#include<stdio.h>
#include<stdlib.h>
voidmain(){
srand(time(0)); //指定随机数种子
intresult=rand()%1000+1; //产生1~1000的随机数
intguess; //储存猜测的数字
//循环提示输入数字,直到猜测结果正确
do{
printf("请输入猜测的数字 ");
scanf("%d",&guess);
if(guess<result)
{
printf("太低了 ");
}
elseif(guess>result)
{
printf("太高了 ");
}
}
while(guess!=result);
printf("太棒了 ");
}
⑺ c语言猜数字游戏
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
char*getHint(char*secret,char*guess)
{
inti,countA=0,countB=0;
intcount[10]={0};
char*result=(char*)malloc(strlen(secret));
if(strlen(secret)!=strlen(guess))
{
printf("UnequalLength!");
returnNULL;
}
for(i=0;i<4;i++)
{
if(secret[i]==guess[i])
countA++;
else
{
count[secret[i]-'0']++;
if(count[secret[i]-'0']<=0)
{
countB++;
}
count[guess[i]-'0']--;
if(count[guess[i]-'0']>=0)
{
countB++;
}
}
}
sprintf(result,"%d%c%d%c",countA,'A',countB,'B');
returnresult;
}
intmain()
{
inti=0,j=0;
charnum[4]={0},input[5]={0};
srand((unsigned)time(NULL));//初始化随机数
for(i=0;i<4;i++)//生成4个随机数
{
num[i]=(rand()%10)+48;
}
for(j=0;j<10;j++)
{
printf("pleaseinput4-digtalsnumber[%d]times:",j+1);
fgets(input,sizeof(input),stdin);
fflush(stdin);
if(strlen(input)!=4)
{
continue;
}
printf("input[%s] ",input);
strcpy(input,getHint(num,input));
printf("ret=[%s] ",input);
if(strcmp(input,"4A0B")==0)
{
printf("YouareWin! ");
break;
}
}
return0;
}
⑻ 用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语言中猜题游戏。
includeamp;stdio.hamp;;includeamp;stdlib.hamp;;includeamp;math.hamp;;includeamp;time.hamp;;void main()/*主函数*/{ int a,b,times=0,i,j,guess=0,answer[5],g[5]; for(i=0;iamp;5;i++)/*随即产生5个数*/ { srand((unsigned int)time(NULL));/*以当前时间为种子*/ answer[i]=rand()%9+1;/*保证为1-9的数,rand产生随即0-65535的数,对9取余为0-8,都加1就是1-9了*/ for(j=0;jamp;i;j++) while(answer[i]==answer[j])/*检查有没有重复的数据,有就重新生成*/ { answer[i]=rand()%9+1; j=-1;/*新生成的数要重新检查,此步后马上执行j++*/ } } printf(;随即的5个数是:;); for(i=0;iamp;5;i++) printf(;%d;,answer[i]);/*输出结果到屏幕,便于测试*/ printf(;\n;); printf(;请输入猜测数字:\n%;); a=0; while(a!=5)/*a记录位置对并且数也对的,如果5个都对就是猜对了*/ { a=0; b=0;/*b记录数是有的,但位置不对的个数*/ times++; printf(;第 %d 次猜测:\t;,times); scanf(;%d;,amp;amp;guess); while(guessamp;12345guessamp;;99999)/*如果猜的数超过这个范围就是瞎猜的,肯定不对,再来一次*/ { printf(;你输入了一个非常规数据,请重新输入:\t;); scanf(;%d;,amp;amp;guess); } for(i=4;iamp;;-1;i--)/*把玩家猜的5个数放到数组中,便于检查对错*/ { g[i]=guess%10; guess=(guess-g[i])/10; } for(i=0;iamp;5;i++)/*检查数据对错*/ { for(j=0;jamp;5;j++) { if(g[i]==answer[j])/*如果猜得的数与结果的某个数一样就把b加1*/ { b++; if(i==j)/*如果位置也对,那就是a加1了,对应的b已经加过,应该减1*/ { a++; b--; } } } } printf(;猜测结果:%dA%dB\n;,a,b); if(a==5) printf(;\t答案正确\n;); /*如果a=5就是猜对了*/ }}
⑽ C语言编写猜数字游戏
#include <stdlib.h>
#include <stdio.h>
//#include <iostream>
unsigned char Num[4] = {0},getNum[4] = {0x20,0x20,0x20,0x20};
void help(void)
{
char i =0,j = 0;
for(i =0;i<4;i++)
{
for(j = 0;j<4;j++)
if(Num[j] == getNum[i])
{
if(i==j)
printf("%dth is correct!\r\n",i);
else
{
printf("%d is a correct data\r\n",getNum[i]);
}
}
else
{
if(i == 3&&j==3)
{printf("/********************small game*****************/\
input 4 data gess the random data,input h can get help\
");}
}
}
}
void main( void )
{
int orginal = 0,getdata = 0,i = 0,j = 0;
// { int a;a = 878*101;cout<<a<<endl}
//first = 0,second = 0,third = 0,fourth = 0;
/* Seed the random-number generator with GetTickCount so that
the numbers will be different every time we run.
*/
srand( (unsigned)time( NULL ) );
orginal = rand();
Num[3] = orginal%10000/1000;
Num[2] = orginal%1000/100;
Num[1] = orginal%1000%100/10;
Num[0] = orginal%10;
// printf(" %d",orginal);
for(i = 0;i<4;)
{
for(j = i+1;j<4;j++)
{
if(Num[i]==Num[j])
{ Num[i]++;if(Num[i]>9) Num[i] = 0;i=0;break;}
}
if(j == 4)i++;
}
get: for(i = 0;i<4;)
{
printf("input Num %d ",i);
scanf("%s",&getNum[i]);
if(getNum[i]-0x30>9||getNum[i]-0x30<0)
{
if (getNum[i] == 'H'||getNum[i] =='h')
{
help();
}
else
printf("input one num\r\n");
//if(i>0)i--;
}
else
{
getNum[i] -=0x30;
for(j = 0;j<i;j++)
{
if(getNum[i] == getNum[j])
{printf("have a same data,please input another\r\n"); break;}
}
if(j==i)
i++;
}
}
printf("you input num %d%d%d%d Y or N?\r\n",getNum[0],getNum[1],getNum[2],getNum[3]);
do{
scanf("%c",&j);
printf("%c",j);
if((j == 'N') || (j == 'n'))goto get;
}while( !((j == 'Y') || (j == 'y')));
printf("over");
}