一个猜数字的游戏代码 求帮改进
这个是课设的作业= 但是我实在做不出来了 求帮助#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void Guess();
void DecideA(int *pMagic,int *pGuess);
void DecideB(int *pMagic,int *pGuess);
void DecideC(int *pMagic,int *pGuess);
int main()
{
char a;
printf("欢迎加入猜数字游戏!\n");
printf("本游戏需要输入四位数(每一位范围1-9,各位上数字不重复).\n");
printf("准备好开始了吗!Y/N:");
a=getchar();
if(a=='Y'||a=='y')
{
Guess();
}
else if(a=='N'||a=='n')
{
printf("欢迎您的使用!\n");
}
}
void Guess()
{
int magic[4],a;
int guess[4];
srand((unsigned)time(NULL));
for(int i=0;i<4;i++)
{
A: ;
magic[i]=1+rand()%9;
for(int j=0;j<i;j++)
{
if(magic[j]==magic[i])
goto A;
}
}
printf("请输入四位数(1-9,且各位不重复):");
scanf("%d",&a);
guess[0]=a/1000;
guess[1]=(a-guess[0]*1000)/100;
guess[2]=(a-guess[0]*1000-guess[1]*100)/10;
guess[3]=a%10;
DecideA(magic, guess);
DecideB(magic, guess);
DecideC(magic, guess);
printf("本次猜字游戏答案为:");
printf("%d%d%d%d\n",magic[0],magic[1],magic[2],magic[3]);
}
void DecideA(int *pMagic,int *pGuess)
{
int t=0;
for (int i=0; i<4; i++)
{
for(int j=0;j<4;j++)
{
if(pGuess[i]==pMagic[j])
{
t++;
}
}
}
printf("恭喜你!\n您本次猜对了%d个数字\n",t);
}
void DecideB(int *pMagic,int *pGuess)
{
int b[4]={0,0,0,0};
for (int i=0;i<4; i++)
{
for(int j=0;j<4;j++)
{
if(pGuess[i]==pMagic[j])
{
b[i]=pGuess[i];
}
}
}
if(b[0]!=0||b[1]!=0||b[2]!=0||b[3]!=0)
{
printf("您本次猜对的数字为:");
for(int i=0;i<4;i++)
{
if(b[i]!=0)
{
printf("%d ",b[i]);
}
}
}
else
{
printf("您本次没有猜对的数字!\n");
}
printf("\n");
}
void DecideC(int *pMagic,int *pGuess)
{
int a[4]={0,0,0,0};
for (int i=0; i<4; i++)
{
if(pMagic[i]==pGuess[i])
{
a[i]=1;
}
}
if(a[0]==0&&a[1]==0&&a[2]==0&&a[3]==0)
{
printf("您本次没有猜对的位置!\n");
}
else
{
printf("您本次猜对的位置为:");
for(int i=0;i<4;i++)
{
a[i]=1;
}
}
if(a[0]==0&&a[1]==0&&a[2]==0&&a[3]==0)
{
printf("您本次没有猜对的位置!\n");
}
else
{
printf("您本次猜对的位置为:");
for(int i=0;i<4;i++)
{
if(a[i]==1)
{
printf("%d ",i+1);
}
}
}
}
这个猜数字游戏 c) 每次猜测输入的数据给出类似的提示*A*B。
d)其中A前的*代表你本次猜对了多少个数字,其中B前的*代表你本次猜对的数字并且位置正确的个数。 能不能帮我把这两个要求做出来