Cmentosuu
Cmentosuu
采纳率100%
2019-11-19 17:58

求大神帮我看看为什么我的程序输出总是0

已采纳

right代表A前面的数字,意思是数字猜对,位置也对
good代表B前面的数字

#include
#include

int main()
{
int k,j,good,right;
short a[4],b[4];
srand(time(NULL));
a[0] = rand()%10;
do
{
a[1] = rand()%10;
}while (a[0] == a[1]);
do
{
a[2] = rand()%10;
}while (a[0] == a[2] || a[1] == a[2]);
do
{
a[3] = rand()%10;
}while (a[0] == a[3] || a[1] == a[3] || a[2] == a[3]);
do
{
printf("输入你猜的数:");
scanf("%d",&b[4]);
right = 0;
for(j=0;j<4;j++)
{
if(a[j] == b[j])
{
right = right + 1;
}
}
good = 0;
for(j=0;j<4;j++)
{
for(k=0;k<4;k++)
{
if(a[k] == b[j])
{
good = good + 1;
}
}
}
good = good - right;
printf("%dA%dB\n",right,good);
}while(right!=4);
if(right == 4)
printf("恭喜你猜对了\n");
return 0;
}
图片说明图片说明图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • ZL1599292797 QiQaWgYu 2年前

    开头加上int tmp;

    printf("输入你猜的数:");
            scanf("%d", &tmp);
            j = 3;
            while (j >= 0) {
                b[j--] = tmp % 10;
                tmp /= 10;
            }
    
    
    点赞 1 评论 复制链接分享

为你推荐