求助,离大谱
查看原帖
求助,离大谱
261417
asasas楼主2021/10/2 17:17

读入玩以后一直没输出id

#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define r register
string s,ans[55];
int main(){
    int t,n;
    cin >> t >> n;
    cin >> s;
    for (register int i=0;i<n;i++) s[i]=s[i]-'A'+'0';
    while(t--){
    	string id;
    	cin >> id;
    	int n=id.size();
    	int idd=0;
    	string td;
    	cin >> td;
//    	cout << id << endl;
    	for (register int i=n-1;i>=0;i--){
    		if (id[i]=='1') idd=idd+pow(2,(n-i-1))*1;
    	}
//    	cout << idd << endl;
//         int i=1; 
    	for (register int i=1;i<=n;i++){
    		cin >> ans[i];
//    		cout << ans[i] << endl;
    	}
//    	cout << endl;
		if (idd<1||idd>10000){
    		cout << "Wrong Id\n\n";
    		continue ;
    	}
//		cout << idd << endl;
    	
    	int wc=0;
    	cout << "ID: " << idd << endl;
    	if (id[n-1]=='1'&&(td[1]=='0'||td[0]=='1')){
    		cout << "Type Incorrect\n";
    	}
    	else if (id[n-1]=='1'&&(td[0]=='0'||td[1]=='1')){
    		cout << "Type Incorrect\n";
    	}
    	else cout << "Type Correct\n";
    	for (register int i=1;i<=n;i++){
    		bool ok=1;
    		for (register int j=0;j<4;j++){
    			if (ans[i][j]=='1'&&j!=s[i-1]) ok=0;
    			if (j==s[i-1]&&ans[i][j]==0) ok=0;
    		}
    		if (ok==1) wc++;
    	}
    	double ans=double(wc)*100.00/double(n);
    	printf("%.2lf\n\n",ans);
    }
    return 0;
}
2021/10/2 17:17
加载中...