玄关,为何string放下面就a了
查看原帖
玄关,为何string放下面就a了
1337512
Caiyuheng0923楼主2024/11/4 21:51

10分代码:

#include<bits/stdc++.h>
using namespace std;
int n;
string s;
int a[4][55];
int ans;

int main() {
//	freopen("poker.in","r",stdin);
//	freopen("poker.out","w",stdout);
	cin>>n;
	for(int i=1;i<=n;i++) {
		cin>>s;
		char a1=s[0];
		char a2=s[1];
		int s1,s2;
		if(a1=='D') {
			s1=1;
		}
		if(a1=='C') {
			s1=2;
		}
		if(a1=='H') {
			s1=3;
		}
		if(a1=='S') {
			s1=4;
		}
		
		
		
		if(a2=='A') {
			s2=1;
		}
		else if(a2=='T') {
			s2=10;
		}
		else if(a2=='J') {
			s2=11;
		}
		else if(a2=='Q') {
			s2=12;
		}
		else if(a2=='K') {
			s2=13;
		} else {
			s2=a2-'0';
		}
		if(!a[s1][s2]) {
			ans++;
			a[s1][s2]=1;
		}
	}
	cout<<52-ans;
	return 0;
}
100分代码:

#include<bits/stdc++.h> using namespace std; int n; int a[4][55]; int ans; string s; int main() { // freopen("poker.in","r",stdin); // freopen("poker.out","w",stdout); cin>>n; for(int i=1;i<=n;i++) {

	cin>>s;
	char a1=s[0];
	char a2=s[1];
	int s1,s2;
	if(a1=='D') {
		s1=1;
	}
	if(a1=='C') {
		s1=2;
	}
	if(a1=='H') {
		s1=3;
	}
	if(a1=='S') {
		s1=4;
	}
	
	
	
	if(a2=='A') {
		s2=1;
	}
	else if(a2=='T') {
		s2=10;
	}
	else if(a2=='J') {
		s2=11;
	}
	else if(a2=='Q') {
		s2=12;
	}
	else if(a2=='K') {
		s2=13;
	} else {
		s2=a2-'0';
	}
	if(!a[s1][s2]) {
		ans++;
		a[s1][s2]=1;
	}
}

cout<<52-ans;
return 0;

} 两者不同的地方只有把字符串s的定义放在了ans的下面,九十分就没了??? 求大佬指教!!!

2024/11/4 21:51
加载中...