読者です 読者をやめる 読者になる 読者になる

kyos1704活動記

適当に考えたことや調べたことを垂れ流すものです。質問等ありましたらtwitter:@kyos1704 に質問してください。

AOJ - 0049 - Blood Groups

http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0049

A,B,O,AB型のそれぞれの人数を数え上げて出力する問題

入力が [番号],[血液型] という形で与えられる

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

int main(){
	string type;
	int t[4]={0};
	while(cin>>type){
		type+=" ";
		int i;
		for(i=0;type[i]!=',';i++);
		i++;
		if(type[i]=='A'&&type[i+1]=='B'){
			t[2]++;
		}else if(type[i]=='A'){
			t[0]++;
		}else if(type[i]=='B'){
			t[1]++;
		}else if(type[i]=='O'){
			t[3]++;
		}
	}
	for(int i=0;i<4;i++){
		cout<<t[i]<<endl;
	}
}

解法
必要な情報は[血液型]だけなので
"," までをどうにかして読み捨ててあとは数え上げる
scanfの読み捨てとかできるといいんだろうなと思うけど
とりあえずstringを回してみた