c 语言 这程序哪有问题?

来源:百度知道 编辑:UC知道 时间:2024/05/17 06:48:13
4个号码正确就结束,不对就继续写!

#include<stdio.h>
void main()
{
int a[4]={3,5,6,2},b[4],i,A=0,B=0,j;
printf("please inter four numbers :\n");
for(i=0;i<4;i++)
{scanf("%d",&b[i]);

for(i=0;i<4;i++)
{
while (a[i]==b[i])
{A++;continue;}
}
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
while (a[i]==b[j])
{B++;continue;}
}
}
}
printf("%dA %dB:\n",A,B);
while(A==4)
{printf("you are a hero\n");break;}
}
是个猜数字的游戏。都玩过吧?

输入可以这样:
for(i=0;i<4;i++)
{b[i]=getch();putchar(b[i]);b[i]-='0';//头文件要有conio.h
getch()输入不回显,加putchar(b[i]);使输入回显

你的外层循环用了i,内层循环还用i,这样就乱了

另外这里也有错:
for(i=0;i<4;i++)
{
while (a[i]==b[i]) //这里i始终为0,是死循环
{A++;continue;}
}
可以这样改:
for(i=0;i<4&&a[i]==b[i];i++)
{
A++;
}

没看明白你后面那个循环嵌套要做什么

总之你的程序没有语法错误,逻辑错误很严重
----------------------------------------------------------------
早说是猜数字啊,这样基本符合要求了:
#include<stdio.h>
void main()
{
int a[4]={3,5,6,2},b[4],i,A=0,B=0,j;
printf("please inter four numbers :\n");
while(1)
{
for(i=0;i<4;i++)
{
b[i]=getchar();b[i]-='0';
}
for(i=0;i<4;i++)
{
if(a[i]==b[i]) A++;
}
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
if(a[i]==b[j]) B++;
}
}
pr