C语言,c语言猜数字游戏戏,怎么让它随机生成四位数?求大神解释。

扫二维码下载作业帮
1.75亿学生的选择
下载作业帮安装包
扫二维码下载作业帮
1.75亿学生的选择
怎样用随机函数写猜数字当中生成随机4位数字?用c语言随机生成4位数字,存在数组中,要用C语言,并且完整详细的
扫二维码下载作业帮
1.75亿学生的选择
4位数字是没有重复的吧#include#include#includevoid rnd4(int b[]){int a[10];for(int i=0;i
为您推荐:
其他类似问题
看看得不得:#include "stdio.h"#include "math.h"#define N 3 /*根据你的需要而定*/void main(){
for(j=0;j<N;j++)
a[j]=rand();<...
扫描下载二维码猜数字游戏,各式各样的实现方式,我这边提供一个实现方式,希望可以帮到新手。
老程序猿就不要看了,黑呵呵
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 m=0,n=0;
//m代表相同的位数,n代表不同的位数
int a[4],b[4],c[4];
//a存储随机数,b存储用户猜测数,c存储标志
generate(a);
printf("已经产生系统随机数,且4位数各个位的数字不相同\n");
printf("1.查看随机数输入1\n");
printf("1.进行猜测输入2\n");
printf("请输入你的选择:");
scanf("%d",&j);
for(i=0;i {
printf("%d",a[i]);
printf("\n");
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)
printf("相同的数位有:%d位,不同的数位有:%d位\n",m,n);
/**********************
4位数随机生成函数
@para int a[]
***********************/
void generate(int a[])
srand((unsigned)time(0));
for(i=0;i {
a[i]=rand()%10;
for(j=0;j {
if(a[j]==a[i])
a[i]=rand()%10;
/**************************
用户所猜数处理
@para int a
@return int*
***************************/
void deal(int num,int b[])
int flag=1000;
for(i=0;i {
b[i] = num/
num-=num/flag*
/**************************
比较函数,用于进行比较
***************************/
void compare(int a[],int b[],int c[])
for(i=0;i {
if(a[i]==b[i])
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");
printf("您输入的被猜的数字中有重复数字,不符合要求,请重新输入:\n");
return -1;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
int main(void)
//定义用户输入的被猜数据
printf ("请输入一个需要被猜的数值:\n");
A: scanf("%d",&a);
if(Isequeal(a,w) ==0)
//如果用户输入的数字符合要求
fenjie(a,b);
int cont=0;
//定义用户猜的次数
//定义用户输入的猜测数据
printf("第%d次猜:
scanf("%d",&x);
fenjie(x,c);
//分解用户输入的猜测数据
int j=0, t=0,v=0,i=0;
for(i=0;i d[i]=1;
for(i=0;i for(j=0;j if(e[i]==2)
if(b[i]==c[j]){
if(e[i]==1){
d[f[i]]=1;
printf("系统提示:%d个数字位置相同,%d个数字位置不同\n",v,4-v);
printf("恭喜你猜对了,你一共猜了%d 次\n",cont);
printf("您一共猜了%d次",cont);
//goto语句用于判断是否重复
非系统生成随机数源代码
#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);
for(i=0;i {
for(j=i+1;j {
if(a[i]==a[j])
if(flag==1)
printf("输入的数字不符合规定,请重新输入:");
scanf("%d",&z);
deal(z,a);
printf("请输入你猜测的数:");
scanf("%d",&num);
deal(num,b);
compare(a,b,c);
for(i=0;i {
if(c[i]==1)
printf("相同的数位有:%d位,不同的数位有:%d位\n",m,n);
void deal(int num,int b[])
int flag=1000;
for(i=0;i {
b[i] = num/
num-=num/flag*
void compare(int a[],int b[],int c[])
for(i=0;i {
if(a[i]==b[i])
经典代码程序,也是感受面向过程编程的实例。
阅读(...) 评论()

我要回帖

更多关于 java猜数字游戏 的文章

 

随机推荐