C语言猜数字游戏
猜数字游戏,各式各样的实现方式,我这边提供一个实现方式,希望可以帮到新手。
老程序猿就不要看了,黑呵呵
源代码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语言猜数字游戏的更多相关文章
- c语言-猜数字游戏
#include <stdio.h> #include <stdlib.h> int top(); int input(); void main() { ; int numbe ...
- [易学易懂系列|rustlang语言|零基础|快速入门|(23)|实战1:猜数字游戏]
[易学易懂系列|rustlang语言|零基础|快速入门|(23)|实战1:猜数字游戏] 项目实战 实战1:猜数字游戏 我们今天来来开始简单的项目实战. 第一个简单项目是猜数字游戏. 简单来说,系统给了 ...
- C语言之猜数字游戏
猜数字游戏 猜数字游戏是以前功能机上的一款益智游戏,计算机会根据输入的位数随机分配一个符合要求的数据,计算机输出guess后便可以输入数字,注意数字间需要用空格或回车符加以区分,计算机会根据输入信息给 ...
- java 猜数字游戏
作用:猜数字游戏.随机产生1个数字(1~10),大了.小了或者成功后给出提示. 语言:java 工具:eclipse 作者:潇洒鸿图 时间:2016.11.10 >>>>> ...
- 用MFC完成一个简单的猜数字游戏: 输入的四位数中,位置和数字都正确为A,数字相同而位置不同的为B。
最近学习了MFC一些比较基础的知识,所以打算通过做一个简单的数字游戏来理解MFC的流程并进一步熟悉其操作. 在这里,我做了一个猜数字的小游戏.第一步当然是设计主界面,先给大家展示一下游戏界面: 主界面 ...
- 实验三 Java猜数字游戏开发
课程:Java实验 班级:201352 姓名:程涵 学号:20135210 成绩: 指导教师:娄佳鹏 实验日期:15.06.03 实验密级: ...
- 通过游戏学python 3.6 第一季 第三章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码 可复制直接使用 娱乐 可封装 函数
猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码 #猜数字--核心代码--猜测次数--随机函数和屏蔽错误代码 import random secrst = random.rand ...
- 通过游戏学python 3.6 第一季 第二章 实例项目 猜数字游戏--核心代码--猜测次数 可复制直接使用 娱乐 可封装 函数
猜数字游戏--核心代码--猜测次数 #猜数字--核心代码--猜测次数 number=33 amount=3 count=0 while count<=amount: conversion ...
- 通过游戏学python 3.6 第一季 第一章 实例项目 猜数字游戏--核心代码 可复制直接使用 娱乐 可封装 函数
本文实例讲述了python实现的简单猜数字游戏.分享给大家供大家参考.具体如下: 给定一个1-99之间的数,让用户猜数字,当用户猜错时会提示用户猜的数字是过大还是过小,知道用户猜对数字为止,猜对数字用 ...
随机推荐
- python之最强王者(11)——异常(exception)
1.Python 异常处理 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误.你可以使用该功能来调试python程序. 异常处理: 本站Python教程会具体介绍. ...
- [连载]《C#通讯(串口和网络)框架的设计与实现》- 14.序列号的设计,不重复的实现一机一码
目 录 第十四章 序列号的设计... 2 14.1 设计原则... 2 14.2 设计思想... 3 14.3 代码实现... 4 14. ...
- Linux(十)___iptables防火墙
一.防火墙的作用 三.防火墙的分类 三.iptables基本语法: 表: 常用filter,nat用于地址映射转换. 配置文件: /etc/sysconfig/iptables 过滤表信息 . 查看i ...
- Css3新特性应用之形状
一.自适应椭圆 * border-radius特性: * 可以单独指定水平和垂直半径,并且值可以是百分比,用/(斜杠)分隔这两个值即可(可以实现自适应宽度椭圆). * 还可以单独指定四个角 ...
- $_SERVER
$_SERVER[‘HTTP_X_REWRITE_URL’] 和$_SERVER[‘REQUEST_URI’]的区别 php4.4.0不支持 $_SERVER[‘REQUEST_URI’],php5. ...
- JS+CSS3人物奔跑动画
查看效果:http://hovertree.com/texiao/jquery/58/ 效果图: 代码: <!DOCTYPE html> <html> <head> ...
- Java学习-序列化
参考资料: http://www.2cto.com/kf/201405/305380.html http://www.cnblogs.com/xdp-gacl/p/3777987.html 序列化 ...
- Microsoft Dynamics CRM 2013 的相关更新 2013-12
DCRM 2013已经发布一段时间了,很多同学都在学习实践中. 截至目前,已经有了一些相关的更新,具体内容,可以参见web Page:http://blogs.msdn.com/b/c ...
- React Native学习笔记
React 是使用ES6 ,支持JSX语法, 开发组件化web或native的工具. 现阶段使用Babel工具转换成ES5 代码. 组件通过props属性传递不变化的内容,UI通过state属性变动来 ...
- MAC的SVN怎么设置允许.a文件上传
首先在mac中svn的安装会去选择Cornerstone 如果遇到这个问题肯定是已经安装并准备上传.a 文件了.首先要清楚svn是默认过滤忽略.a文件的上传的,要想可以上传.a 可以通过这个简单的方法 ...