#14174: WA(Line:8932)你共輸出8931行


sleep1700505@gmail.com (李曼成)

學校 : 不指定學校
編號 : 80113
來源 : []
最後登入時間 :
2018-05-23 09:25:37
a291. nAnB problem | From: [150.116.253.45] | 發表日期 : 2018-06-21 12:09

以下是我的程式碼:

#include <iostream>
#include <string.h>
using namespace std;

int main()
{
cin.tie(0);
char answer[4],copy[4];
int n;
int i=0;
int p=0;
int q=0;
int j=0;
int k=0;
cin>>answer[0]>>answer[1]>>answer[2]>>answer[3];
cin>>n;
memcpy (copy,answer,sizeof(answer));
while(i<n){
char guess[4];
cin>>guess[0]>>guess[1]>>guess[2]>>guess[3];
for(j=0;j<4;j++){
if(answer[j]==guess[j]){
p++;
answer[j]='a';
guess[j]='b';
}
}
for(j=0;j<4;j++){
for(k=0;k<4;k++){
if(answer[k]==guess[j]){
q++;
answer[k]='c';
guess[j]='d';
}
}
}
cout<<p<<'A'<<q<<'B'<<'\n';
p=0;
q=0;
memcpy (answer,copy,sizeof(copy));
i++;
}
return 0;
}

 

在討論區抓了很多測資測答案都對

可是實際丟答案原因不明都會輸出短少

想請大大們解惑QQ

 

 
#14178: Re:WA(Line:8932)你共輸出8931行


a0970580085@gmail.com (/)

學校 : 義守大學
編號 : 74647
來源 : [125.229.235.114]
最後登入時間 :
2023-08-30 17:36:04
a291. nAnB problem | From: [111.254.221.253] | 發表日期 : 2018-06-21 22:44

以下是我的程式碼:

#include
#include
using namespace std;

int main()
{
cin.tie(0);
char answer[4],copy[4];
int n;
int i=0;
int p=0;
int q=0;
int j=0;
int k=0;
cin>>answer[0]>>answer[1]>>answer[2]>>answer[3];
cin>>n;
memcpy (copy,answer,sizeof(answer));
while(i<n){
char guess[4];
cin>>guess[0]>>guess[1]>>guess[2]>>guess[3];
for(j=0;j<4;j++){
if(answer[j]==guess[j]){
p++;
answer[j]='a';
guess[j]='b';
}
}
for(j=0;j<4;j++){
for(k=0;k<4;k++){
if(answer[k]==guess[j]){
q++;
answer[k]='c';
guess[j]='d';
}
}
}
cout<<p<<'A'<<q<<'B'<<'\n';
p=0;
q=0;
memcpy (answer,copy,sizeof(copy));
i++;
}
return 0;
}

 

在討論區抓了很多測資測答案都對

可是實際丟答案原因不明都會輸出短少

想請大大們解惑QQ

 

第一行的正確密碼有好幾組
要用while(cin>>answer[0]>>answer[1]>>answer[2]>>answer[3])

int i=0;放在while(cin>>answer[0]>>answer[1]>>answer[2]>>answer[3])下面

每輸入第一行的正確密碼後reset i

 

或者寫成while(n>0)

最後n--;

 
#14180: Re:WA(Line:8932)你共輸出8931行


sleep1700505@gmail.com (李曼成)

學校 : 不指定學校
編號 : 80113
來源 : []
最後登入時間 :
2018-05-23 09:25:37
a291. nAnB problem | From: [150.116.253.45] | 發表日期 : 2018-06-21 23:15

以下是我的程式碼:

#include
#include
using namespace std;

int main()
{
cin.tie(0);
char answer[4],copy[4];
int n;
int i=0;
int p=0;
int q=0;
int j=0;
int k=0;
cin>>answer[0]>>answer[1]>>answer[2]>>answer[3];
cin>>n;
memcpy (copy,answer,sizeof(answer));
while(i<n){
char guess[4];
cin>>guess[0]>>guess[1]>>guess[2]>>guess[3];
for(j=0;j<4;j++){
if(answer[j]==guess[j]){
p++;
answer[j]='a';
guess[j]='b';
}
}
for(j=0;j<4;j++){
for(k=0;k<4;k++){
if(answer[k]==guess[j]){
q++;
answer[k]='c';
guess[j]='d';
}
}
}
cout<<p<<'A'<<q<<'B'<<'\n';
p=0;
q=0;
memcpy (answer,copy,sizeof(copy));
i++;
}
return 0;
}

 

在討論區抓了很多測資測答案都對

可是實際丟答案原因不明都會輸出短少

想請大大們解惑QQ

 

第一行的正確密碼有好幾組
要用while(cin>>answer[0]>>answer[1]>>answer[2]>>answer[3])

int i=0;放在while(cin>>answer[0]>>answer[1]>>answer[2]>>answer[3])下面

每輸入第一行的正確密碼後reset i

 

或者寫成while(n>0)

最後n--;



謝謝指點!成功AC了><

 
ZeroJudge Forum