阵列[a]
和[b]
应该在两个单独的行上分别输入4个数字,并输出?A?B
,如在着名的数字猜测游戏中。 (例如,1234\n1347
应该输出1A2B
。)但是,我发现1
在a[0]
被替换为\0
而其他人仍然很好。 (边注:这发生在了XCode,但不能在Visual Studio中)C阵列第一个输入“ 0”
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char a[4], b[4];
int i, j;
int A = 0, B = 0;
scanf("%s%s",a,b);
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++;
B = B-A;
printf("%dA%dB\n",A,B);
return 0;
}
改变数组大小[5]
解决了这个问题,但我想知道这是怎么回事。谢谢!
所有问题的根源:'scanf(“%s%s”,a,b);' –
您能告诉我更多吗? –