我刚学编程不久,用VC++编写的模仿文曲星上猜数字的游戏,请大家指点一下.谢谢
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
//编写函数 产生(0-9)四个不一样的随机数
void suiji(int a[])
{
int i,j;
a[0]=rand()%10;
for(i=1;i<4;i++)
{
while(1)
{
a[i]=rand()%10;
for(j=0;j<i;j++)
{
if(a[i]==a[j])
break;
}
if(j==i)
break;
}
}
}
//输出函数
void display(int a[])
{
int i;
for(i=0;i<4;i++)
{
printf("%d ",a[i]);
}
putchar('\n');
}
void main()
{
//only记录仅数字猜对的个数,all记录数字和位置都对的个数,count记录总猜测次数
int i,j,only,all,count=0,sys[4],guess[4]; printf("您共有六次猜测机会!\n\n");
srand((unsigned)time(NULL));
suiji(sys);
do
{
only=0;
all=0;
printf("第%d次:\n",count+1);
for(i=0;i<4;i++)
{
printf("请输入第%d个位置的数字:",i+1);
scanf("%d",&guess[i]);
}
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
if(guess[i]==sys[j] && i==j)
all++;
if(guess[i]==sys[j] && i!=j)
only++;
}
}
if(all==4)
break;
printf("======================================================\n");
printf("数字和位置都猜对的有%d个!\n",all);
printf("仅数字猜对的有%d个!\n",only);
printf("======================================================\n\n");
count++;
}while (count!=6);
if(all==4)
{
printf("恭喜您!猜对了!真聪明!\n");
display(sys);
}
else
{
printf("很遗憾!您没能猜对!\n");
printf("正确答案是:");
display(sys);
}
}