C语言高手进,答得好加分

来源:百度知道 编辑:UC知道 时间:2024/06/06 16:13:25
本人C语言菜鸟,请求大侠帮助
编一个猜数字程序:
首先自动产生一个n位0-9数字,每位上的数字互不相同。
然后,程序接受玩家输入所猜测的n位不重复的数字;
接着,由程序比对符合的位数以及不符合但有出现的数字的数量。完全符合的数字会以A来表示,而不符合正确位置但有出现的数字则以B来表示。举例,如果正确答案是2345且玩家猜的是4395,则会得到2A1B。
最后,玩家在m次内猜测出完全相符的数字组合即为胜利。若没有在指定m回合完成,则给出准确答案。
本人程序如下(极为繁琐,见笑了):
#include <time.h>
#include <stdio.h>
#include <stdlib.h>

int *ran()
{int random[4];
int i;
srand(time(NULL));
random[0]=rand()%9;
random[1]=rand()%9;
if(random[1]==random[0])
while(random[1]==random[0])
random[2]=rand()%9;
random[2]=rand()%9;
if(random[2]==random[1]||random[2]==random[0])
while(random[2]==random[1]||random[2]==random[0])
random[2]=rand()%9;
random[3]=rand()%9;
if(random[3]==random[2]||random[3]==random[1]||random[3]==random[0])
while(random[3]==random[2]||random[3]==random[1]||random[3]==random[0])
random[3]=rand()%9;
printf("rand number between

#include <time.h>
#include <stdio.h>
#include <stdlib.h>

int *ran()
{
static int random[4];
int i;
srand(time(NULL));
random[0]=rand()%9;
random[1]=rand()%9;
if (random[1]==random[0])
while (random[1]==random[0])
random[2]=rand()%9;
random[2]=rand()%9;
if (random[2]==random[1]||random[2]==random[0])
while (random[2]==random[1]||random[2]==random[0])
random[2]=rand()%9;
random[3]=rand()%9;
if (random[3]==random[2]||random[3]==random[1]||random[3]==random[0])
while (random[3]==random[2]||random[3]==random[1]||random[3]==random[0])
random[3]=rand()%9;
printf("rand number between 0123 and 9876:\n");
for (i=0; i<4; i++)
printf("%d ",random[i]);
printf("\n");
return random; //返回局