陣列[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);' –
您能告訴我更多嗎? –