问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用C语言编写猜数字(喜欢挑战的人可以来看看哦)

发布网友 发布时间:2022-08-18 14:23

我来回答

3个回答

热心网友 时间:2023-11-01 05:59

// 猜数字.cpp : Defines the entry point for the console application.
//
#include <stdafx.h>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
//随机生成4位数,要求没有重复数字
void ProceRandomNumber(int data[4])
{
int z;
/*随机选取1-9999的数,放弃1-999的数,选择1000-9999的数*/
do
{
srand( (unsigned)time( NULL ) );
z=(rand()%100)*(rand()%100);/*随机选数*/
data[3]=z%10;/*把随即数分成4个*/
data[2]=z/10%10;
data[1]=z/100%10;
data[0]=z/1000%10;
}while(z<1000||data[0]==data[1]||data[0]==data[2]||data[0]==data[3]||data[1]==data[2]||data[1]==data[3]||data

[2]==data[3]||data[0]==0);/*判断每一位数是否相同,如果是则重新输出*/
return ;
}
void Indata(int number,int data[4])
{
data[0]=number/1000%10;
data[1]=number/100%10;
data[2]=number/10%10;
data[3]=number%10;
}
int PosRight(int question[4],int answer[4])
{
int i,count=0;
for(i=0;i<=3;i++)
{
if(question[i]==answer[i])
{
count++;
}
}
return count;
}
int NumRight(int question[4],int answer[4])
{
int i,j,count=0;
for(i=0;i<=3;i++)
{
for(j=0;j<=3;j++)
{
if((question[i]==answer[j])&&(i!=j))
{
count++;
}
}
}
return count;
}

int main(int argc, char* argv[])
{
int answer,count=0,input[4],output[4],m=0,n=0,choice;
ProceRandomNumber(input);
printf(" 欢迎来玩猜数字游戏!\n 游戏开始啦!!!\n");
do
{
count++;
scanf("%d",&answer);
Indata(answer,output);
m=PosRight(input,output);
n=NumRight(input,output);
if(m==4)
{
printf("你真棒!!!\n这个数字就是%d%d%d%d\n你一共猜了%d次了!\n",input[0],input[1],input[2],input[3],count);
break;
}
else
{
printf("不好意思你错了哦!! 提示: %dA%dB\n",m,n);
}
if(count==8)
{
printf("你已经猜了八次了!还要继续吗?(1:yes/0:false)\n");
scanf("%d",&choice);
if(choice==1)
printf("继续吧!\n");
else
{printf("结束游戏!\n");
break;}

}
else if(count==15)
{
printf("你已经猜了15 次了,可能方法不对!下次继续吧!!!\n");
break;
}
}while(1);
return 0;
}

热心网友 时间:2023-11-01 06:00

/*
********************************************************************************
**
** 文 件 名: GUESS.C
**
** 文件描述: 猜数字游戏
**
** 版 本: 1.0.0
**
** 创 建 人:
**
** 单 位:
**
** 最后修改: 2010年6月18日
**
** 备 注:
**
********************************************************************************
*/
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int GetRandomStr(char RandomStr[5])
{
int i;
int j;
int k;
i=0;
while(i<4)
{
k=random(10);
if( ! (k || i) )
continue;
k=k+'0';
for(j=0;j<i;j++)
{
if( k==RandomStr[j] )
{
k=0;
break;
}
}
if(!k)
continue;
RandomStr[i]=k;
i++;
}
RandomStr[4]=0x0;
}
int Compare(char RandomStr[5],int k,int *m, int *n)
{
int i;
int j;
char c;
*m=0;
*n=0;
i=0;
for(i=0;i<4;i++)
{
c=(k%10)+'0';
k=(int)(k/10);
for(j=0;j<4;j++)
{
if( c==RandomStr[j] )
if ( 3-i ==j)
(*m)++;
else
(*n)++;
}
}
return (*m);
}

int Exit(int Cn)
{
char c;
printf("Yun have guess %d times,continue?(1:yes/0:no):",Cn);

while(1)
{

c=getch();
printf("%c\n",c);
if ( c=='1' )
return 1;
else if ( c == '0')
return 0;
else
{
printf("nonlicet input,plase again\n");
printf("Yun have guess 8 times,continue?(1:yes/0:no):\n");
}
}

}

int main()
{
char RandomStr[5]; /* 随机数(4个字符) */
unsigned int k; /* 随机数(4位整数) */
int m; /* 位置正确的数字个数 */
int n; /* 数字正确而位置不对的数的个数 */
int Cn; /* 次数 */
char Mask[]="%dA%dB\n"; /* 显示格式 */
const char MessageS[5][50]={
""};
randomize();
GetRandomStr(RandomStr);
/* printf("Random number in the 0-99 range: %s\n", RandomStr); */
Cn=1;
while(1)
{
printf("Enter number(4):");
scanf("%u",&k);
/*printf("you enter:%d\n",k); */
if(k<1000 || k>9999)
{ printf("number error!\n");
continue;
}
if( Compare(RandomStr,k,&m,&n)==4 )
{
printf("You are best,this number is %d,you have guess %d times\n",k,Cn);
break;
}
printf(Mask,m,n);
if ( Cn == 8 )
{
if ( Exit(Cn) == 0)
break;
}
if ( Cn == 15)
{
printf("You have guess %d times,pig!\n",Cn);
getch();
break;
}
Cn++;

}
getch();

}

热心网友 时间:2023-11-01 06:00

tzol
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
形容手表很舒服的句子 情侣手表的对话句子 租门面和房东鉴了十年合同,房东要退店面,我可以不退吗,继续经 ...一篇朝花夕拾里十篇小短文的主要内容及作者的情感和主要人物的... 什么叫狼狗 狼狗的生活习性有哪些? 起个姓罗好听的宝宝名字 野火的近义词 个是词语解释 请旌词语解释 挑战——数字推理题8 全民挑战写数字是什么意思 发跟鼓鼓的丸子头怎么扎 扎头发怎么将头发扎鼓起? 和荣威RX8一起漫步冬日杭州,不舍醉美西湖 男孩子姓石的名字 日利率百分之0.05高吗 参考以下几个因素 黄酒的主要功效 从事营养学研究的意义在于什么 《红楼梦》中哪些故事可以看出什么人的精神品质? 二十来个、二十来度、二十来天……如何理解? 来度科技可靠吗? 人要怎样来度``生活 十来度是指10度以下还是10度以上 关于人死后法师来度的一些事,请高人指点。 温度30来度是指30度以下还是30度以上 男人说你来度我来了是什么意思? 说气温30来度,确切是多少度 二十来度到底是二十度以上还是20度左右 复合布跟贴合布有什么差别 数独挑战在行和列上写1,2,3,4,5,6,7,8,9, 初中数学不好怎么提高 心有灵犀 歌词 陆小凤与花满楼电视剧片中曲叫什么 林峰版陆小凤片头曲叫什么,不是那个一点通,歌词开头是:君问归期未有期 电视剧陆小凤与花满楼插曲叫什么 电气二次回路识图可以吗 一张图告诉你什么是电气一次回路,什么是二次回路 玩传奇游戏的玩家,都是什么岁数的? 传奇任务.年轻人,告诉我什么是最强,怎么触发这个任务 玩传奇SC都是些什么人?? 年轻人玩传奇的人多吗 有个叫《传奇》的电视节目,节目显示的那个年轻人的头像是谁? 课外书的价格和名字 心理学入门书籍、知道价格的带上价格、谢谢 《浮士德》全套书籍哪里有买?大概价格是多少? 关于象棋书籍《橘中秘》、《和梅花谱》的价格? 中信小金卡是信用卡吗?有什么用? 中信京东小白卡评测 权益、年费、额度三方面分析 热剧《乌龙山剿匪记》影响几代人,当年剧中这些演员如今怎么样了