猜数字游戏,各式各样的实现方式,我这边提供一个实现方式,希望可以帮到新手。

老程序猿就不要看了,黑呵呵

源代码1
include stdio.h
include stdlib.h
include time.h
void generate(int a[]); //4位数随机生成函数
void deal(int num,int b[]); //对用户所猜数处理
void judge(int a[]); //多余函数!!!!
void compare(int a[],int b[],int c[]); //比较函数,用于进行比较
int main()
{
int i,j; //定义变量
int m=0,n=0; //m代表相同的位数,n代表不同的位数
int a[4],b[4],c[4]; //a存储随机数,b存储用户猜测数,c存储标志
int num;
generate(a);
printf("已经产生系统随机数,且4位数各个位的数字不相同\n");
while(1)
{
printf("1.查看随机数输入1\n");
printf("1.进行猜测输入2\n");
printf("请输入你的选择:");
scanf("%d",&j);
switch(j)
{
case 1:
{
for(i=0;i {
printf("%d",a[i]);
}
printf("\n");
};
break;
case 2:
/*{
printf("请输入你猜测的数:");
scanf("%d",&num);
deal(num,b);
compare(a,b,c);
printf("相同的数位为第:");
for(i=0;i {
if(c[i]==1)
printf("%d ",(i+1));
}
printf("位");
printf("\n");
};*/
{
printf("请输入你猜测的数:");
scanf("%d",&num);
deal(num,b);
compare(a,b,c);
for(i=0;i {
if(c[i]==1)
m++;
else
n++;
}
printf("相同的数位有:%d位,不同的数位有:%d位\n",m,n);
m=0;
n=0;
};
break;
}
}
return 0;
}
/**********************
* 4位数随机生成函数
* @para int a[]
* @return ;
***********************/
void generate(int a[])
{
int i,j;
srand((unsigned)time(0));
for(i=0;i {
a[i]=rand()%10;
for(j=0;j {
if(a[j]==a[i])
{
j=0;
a[i]=rand()%10;
}
}
}
}
/**************************
* 用户所猜数处理
* @para int a
* @return int*
***************************/
void deal(int num,int b[])
{
int i;
int flag=1000;
for(i=0;i {
b[i] = num/flag;
num-=num/flag*flag;
flag/=10;
}
}
/**************************
* 比较函数,用于进行比较
* @para
* @return
***************************/
void compare(int a[],int b[],int c[])
{
int i;
for(i=0;i {
if(a[i]==b[i])
{
c[i]=1;
}
else
{
c[i]=0;
}
}
}
源代码2
include stdio.h
include cstdlib
/*定义一些必要的数组,用来存放数据*/
int b[10],c[10],d[10],e[10], f[10],w[10];
void fenjie(int n,int s[]){ //分解函数,用于分解四位数的个、十、百、千位
s[0]=n/1000;
s[1]=n/100-s[0]*10;
s[2]=n/10-s[0]*100-s[1]*10;
s[3]=n%10;
}
int Isequeal(int y,int w[]) //判断函数,用于判断用户输入的初始被猜数字是否有重复数字
{
w[0]=y/1000;
w[1]=y/100-w[0]*10;
w[2]=y/10-w[0]*100-w[1]*10;
w[3]=y%10;
if(w[0]!=w[1] && w[0]!=w[2] && w[0]!=w[3] && w[1]!=w[2] && w[1]!=w[3] && w[2]!=w[3] )
{
printf("您输入的被猜的数字符合要求\n");
return 0;
}
else
{
printf("您输入的被猜的数字中有重复数字,不符合要求,请重新输入:\n");
return -1;
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int main(void) //主函数
{ int a; //定义用户输入的被猜数据
int p;
printf ("请输入一个需要被猜的数值:\n");
A: scanf("%d",&a);
if(Isequeal(a,w) ==0) //如果用户输入的数字符合要求
{
fenjie(a,b);
int cont=0; //定义用户猜的次数
while(1){
cont++;
int x; //定义用户输入的猜测数据
printf("第%d次猜: ",cont);
scanf("%d",&x);
fenjie(x,c); //分解用户输入的猜测数据
int j=0, t=0,v=0,i=0;
for(i=0;i d[i]=1;
e[i]=1;
f[i]=-1;
}
for(i=0;i for(j=0;j if(e[i]==2)
continue;
if(b[i]==c[j]){
if(d[j]){
if(e[i]==1){
t++;
}else{
d[f[i]]=1;
}
d[j]=0;
e[i]=0;
f[i]=j;
}
if(i==j){
v++;
e[i]==2;
}
}
}
}
printf("系统提示:%d个数字位置相同,%d个数字位置不同\n",v,4-v);
if(v==4){
printf("恭喜你猜对了,你一共猜了%d 次\n",cont);
break;
}
}
printf("您一共猜了%d次",cont);
}
else
{
goto A; //goto语句用于判断是否重复
}
return 0;
}
非系统生成随机数源代码
#include stdio.h
#include stdlib.h
#include time.h
void deal(int num,int b[]);
void compare(int a[],int b[],int c[]);
int main()
{
int i,j,flag=1;
int m=0,n=0;
//m代表相同的位数,n代表不同的位数
int a[4],b[4],c[4];
//a存储随机数,b存储用户猜测数,c存储标志
int num,z;
printf("请输入想要猜的数字:");
scanf("%d",&z);
deal(z,a);
while(1)
{
for(i=0;i {
for(j=i+1;j {
if(a[i]==a[j])
{
flag=0;
}
}
}
if(flag==1)
{
break;
}
else
{
printf("输入的数字不符合规定,请重新输入:");
scanf("%d",&z);
deal(z,a);
flag=1;
}
}
while(1)
{ printf("请输入你猜测的数:");
scanf("%d",&num);
deal(num,b);
compare(a,b,c);
for(i=0;i {
if(c[i]==1)
m++;
else
n++;
}
printf("相同的数位有:%d位,不同的数位有:%d位\n",m,n);
m=0;
n=0;
}
return 0;
}
void deal(int num,int b[])
{
int i;
int flag=1000;
for(i=0;i {
b[i] = num/flag;
num-=num/flag*flag;
flag/=10;
}
}
void compare(int a[],int b[],int c[])
{
int i;
for(i=0;i {
if(a[i]==b[i])
{
c[i]=1;
}
else
{
c[i]=0;
}
}
}
玩笑图片
经典代码程序,也是感受面向过程编程的实例。

C语言猜数字游戏的更多相关文章

  1. c语言-猜数字游戏

    #include <stdio.h> #include <stdlib.h> int top(); int input(); void main() { ; int numbe ...

  2. [易学易懂系列|rustlang语言|零基础|快速入门|(23)|实战1:猜数字游戏]

    [易学易懂系列|rustlang语言|零基础|快速入门|(23)|实战1:猜数字游戏] 项目实战 实战1:猜数字游戏 我们今天来来开始简单的项目实战. 第一个简单项目是猜数字游戏. 简单来说,系统给了 ...

  3. C语言之猜数字游戏

    猜数字游戏 猜数字游戏是以前功能机上的一款益智游戏,计算机会根据输入的位数随机分配一个符合要求的数据,计算机输出guess后便可以输入数字,注意数字间需要用空格或回车符加以区分,计算机会根据输入信息给 ...

  4. java 猜数字游戏

    作用:猜数字游戏.随机产生1个数字(1~10),大了.小了或者成功后给出提示. 语言:java 工具:eclipse 作者:潇洒鸿图 时间:2016.11.10 >>>>> ...

  5. 用MFC完成一个简单的猜数字游戏: 输入的四位数中,位置和数字都正确为A,数字相同而位置不同的为B。

    最近学习了MFC一些比较基础的知识,所以打算通过做一个简单的数字游戏来理解MFC的流程并进一步熟悉其操作. 在这里,我做了一个猜数字的小游戏.第一步当然是设计主界面,先给大家展示一下游戏界面: 主界面 ...

  6. 实验三 Java猜数字游戏开发

    课程:Java实验   班级:201352     姓名:程涵  学号:20135210 成绩:             指导教师:娄佳鹏   实验日期:15.06.03 实验密级:         ...

  7. 通过游戏学python 3.6 第一季 第三章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码 可复制直接使用 娱乐 可封装 函数

       猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码   #猜数字--核心代码--猜测次数--随机函数和屏蔽错误代码 import random secrst = random.rand ...

  8. 通过游戏学python 3.6 第一季 第二章 实例项目 猜数字游戏--核心代码--猜测次数 可复制直接使用 娱乐 可封装 函数

      猜数字游戏--核心代码--猜测次数   #猜数字--核心代码--猜测次数 number=33 amount=3 count=0 while count<=amount: conversion ...

  9. 通过游戏学python 3.6 第一季 第一章 实例项目 猜数字游戏--核心代码 可复制直接使用 娱乐 可封装 函数

    本文实例讲述了python实现的简单猜数字游戏.分享给大家供大家参考.具体如下: 给定一个1-99之间的数,让用户猜数字,当用户猜错时会提示用户猜的数字是过大还是过小,知道用户猜对数字为止,猜对数字用 ...

随机推荐

  1. source /etc/profile报错-bash: id:command is not found

    由于误操作导致 source /etc/profile 报错 -bash: id:command is not found 此时,linux下很多命令到不能能用,包括vi ls 等... 可以使用 e ...

  2. Maven部署构件至远程仓库

    私服的一大作用就是部署第三方构件,包括组织内的生成的构件以及一些无法从外部仓库获取的构件.无论是日常开发中生成的构件,还是正式版本发布的构件,都需要部署到仓库中,供其它团队成员使用.Maven除了能对 ...

  3. SQL Server游标(转)

    清晰地介绍了SQL游标,很好的学习资料. 转自 http://www.cnblogs.com/knowledgesea/p/3699851.html 什么是游标 结果集,结果集就是select查询之后 ...

  4. 八皇后算法的另一种实现(c#版本)

    八皇后: 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例.该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于 ...

  5. 图解ios程序生命周期

    图解ios程序生命周期 应用程序启动后状态有Active.Inactive.Background.Suspended.Not running这5种状态,几种状态的转换见下图: 在AppDelegate ...

  6. UILabel 自适应宽高

    #import <UIKit/UIKit.h> @interface UILabel (UILabel_LabelHeighAndWidth) + (CGFloat)getHeightBy ...

  7. get和post的区别

    http://localhost:8080/shopc/check.do?username=zhangsan&pwd=123456 http://localhost:8080/shopc/ch ...

  8. ffmpeg 安装,转视频格式为m3u8,压缩视频

    # ffmpegffmpeg 安装,转视频格式为m3u8,压缩视频 ## ffmpeg 安装直接安装: apt-get install ffmpeg 运行 `ffmpeg` 看是否出现版本号以判断是否 ...

  9. 怎么样在Myeclipse中配置JDK?

    1.首先电脑上安装JDK 2.打开Myeclipse  >>  Window  >>  Preferences  如图1: 图1 2.Preferences  >> ...

  10. Windows API 函数列表 附帮助手册

    所有Windows API函数列表,为了方便查询,也为了大家查找,所以整理一下贡献出来了. 帮助手册:700多个Windows API的函数手册 免费下载 API之网络函数 API之消息函数 API之 ...