菜鸟请教高手

时间:2021-01-13 08:47:10
我想实现双色球的玩法.写了下面的这个程序,首先随机的生成七个号码,然后用户猜七个号码输入.后面就写不下去了,是因为我不知道该怎么实现判断七个号码中中了几个的算法.但我是这样想的,我想把guess取到的那7个数放到一个数组t[]里面,然后和用户输入的keyin[]数组进行比较,用for()循环嵌套实现,用n来统计猜对的个数.可是,我不知道该如何把guess取到的值给t[]。求教高手。我是初学者,请原谅我问这么简单的问题。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
int guess, keyin[7];
int i=0;
srand((unsigned) time(NULL));
{

guess=rand()%32+1;
printf("%4d",guess);
i++;
}
if(i<7)
goto loop;
printf("\nplease input seven numbers what your guess (1~32):\n");

for(i=0;i<7;i++)
scanf("%d",&keyin[i]); 
         printf("your input number is:\n");
for(i=0;i<7;i++)
printf("%6d",keyin[i]);
printf("\n");
return 1;

}

7 个解决方案

#1


请求高手帮我实现一下。真诚等待中。。。

#2


{

guess=rand()%32+1;
printf("%4d",guess);
i++;
}
你是说这里?

直接开个t[7]数组,然后t[i] = guess;

不知道有没理解错lz的意思

还有最好不要用goto

#3


对阿,我也试过用
for(i=0;i<7;i++)
t[i]=guess;
但貌似得不到啊

#4


int t[7];
srand((unsigned) time(NULL));
for(i=0;i<7;i++){
t[i]=rand()%32+1;
}
不知道星不?

#5


goto很危险,弄不好会系统崩溃的,而且是找不出原因的崩溃。强烈建议不要使用。

#6


t[i] = guess就可以啦, 还有goto不要用,不便于理解程序,但也不是一棒打死  偶尔用也可以

#7


知道了,终于把这个程序写好了。谢谢各位大侠。小弟很菜,不过能得到你们的支持小弟很有动力。
昨天看了一道题目,是一个猜字游戏,猜1~5之间的一个数字,然后小弟看到有个函数居然可以产生一个随机值,就是那个什么srand()和rand()还有那个time()。然后我就想用一下这个能随机产生数字的算法。就想着写个双色球的程序。呵呵。我调试过了,结果是正确的。不知道还有没有什么特别的错误我自己不能找到。所以就发上来给大家指点一下。谢谢大家。
//双色球游戏
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
int  keyin[7],t[7];
int i=0,j,k,n=0;
srand((unsigned) time(NULL));
for(i=0;i<7;i++)
{t[i]=rand()%32+1;}
printf("\nthe correct number is:\n");
for(i=0;i<7;i++)
printf("%4d",t[i]);
printf("\nplease input seven numbers what your guess (1~32):\n");

for(i=0;i<7;i++)
scanf("%d",&keyin[i]); 
printf("your input number is:\n");
for(i=0;i<7;i++)
printf("%4d",keyin[i]);
printf("\n");

for(j=0;j<6;j++)
for(k=0;k<6;k++)
{
if(t[j]==keyin[k])
n++;
}
printf("\nyou have got %d red correct number!\n",n);

if(t[6]==keyin[6])
printf("and the blue one !\n");
else
printf("but the blue one !\n");
return 1;

}

#1


请求高手帮我实现一下。真诚等待中。。。

#2


{

guess=rand()%32+1;
printf("%4d",guess);
i++;
}
你是说这里?

直接开个t[7]数组,然后t[i] = guess;

不知道有没理解错lz的意思

还有最好不要用goto

#3


对阿,我也试过用
for(i=0;i<7;i++)
t[i]=guess;
但貌似得不到啊

#4


int t[7];
srand((unsigned) time(NULL));
for(i=0;i<7;i++){
t[i]=rand()%32+1;
}
不知道星不?

#5


goto很危险,弄不好会系统崩溃的,而且是找不出原因的崩溃。强烈建议不要使用。

#6


t[i] = guess就可以啦, 还有goto不要用,不便于理解程序,但也不是一棒打死  偶尔用也可以

#7


知道了,终于把这个程序写好了。谢谢各位大侠。小弟很菜,不过能得到你们的支持小弟很有动力。
昨天看了一道题目,是一个猜字游戏,猜1~5之间的一个数字,然后小弟看到有个函数居然可以产生一个随机值,就是那个什么srand()和rand()还有那个time()。然后我就想用一下这个能随机产生数字的算法。就想着写个双色球的程序。呵呵。我调试过了,结果是正确的。不知道还有没有什么特别的错误我自己不能找到。所以就发上来给大家指点一下。谢谢大家。
//双色球游戏
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
int  keyin[7],t[7];
int i=0,j,k,n=0;
srand((unsigned) time(NULL));
for(i=0;i<7;i++)
{t[i]=rand()%32+1;}
printf("\nthe correct number is:\n");
for(i=0;i<7;i++)
printf("%4d",t[i]);
printf("\nplease input seven numbers what your guess (1~32):\n");

for(i=0;i<7;i++)
scanf("%d",&keyin[i]); 
printf("your input number is:\n");
for(i=0;i<7;i++)
printf("%4d",keyin[i]);
printf("\n");

for(j=0;j<6;j++)
for(k=0;k<6;k++)
{
if(t[j]==keyin[k])
n++;
}
printf("\nyou have got %d red correct number!\n",n);

if(t[6]==keyin[6])
printf("and the blue one !\n");
else
printf("but the blue one !\n");
return 1;

}