以下是我的程式碼:
#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
以下是我的程式碼:
#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--;
以下是我的程式碼:
#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了><