在試範例測資時,在1115和1523這對測資中會顯示1A2B,是為什麼會這樣?
以下是我的程式碼:
#include <stdio.h>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int a[4]={},b[4]={},n;
while(scanf("%d%d%d%d",&a[1],&a[2],&a[3],&a[4])==4)
{
scanf("%d",&n);
for(int g=1;g<=n;g++)
{
int c[4],sum=0,sum2=0,f[4]={};
c[1]=a[1],c[2]=a[2],c[3]=a[3],c[4]=a[4];
for(int i=1;i<=4;i++)
{
scanf("%d",&b[i]);
if(a[i]==b[i]){a[i]=-2;f[i]=-1;sum++;}
}
for(int i=1;i<=4;i++)
{
for(int j=1;j<=4;j++)
{
if(f[i]==-1)break;
if(b[j]==-1)continue;
else
{
if(a[i]==b[j]){a[i]=-2;b[j]=-1;sum2++;}
}
}
a[i]=c[i];
}
if(sum+sum2>4)sum2-=4-sum;
printf("%dA%dB\n",sum,sum2);
}
}
return 0;
}