📄 1274.cpp
字号:
#include<iostream>
#include<fstream>
#include<string>
#include<algorithm>
#include<sstream>
#include<vector>
using namespace std;
class item{
public:
string s;
int n;
item(string a,int b){s=a;n=b;}
item(){}
item(const item & ss){s=ss.s;n=ss.n;}
};
void init(string & s){
if(s.length()==1){
if(s[0]<='z'&&s[0]>='a') s[0]+=('A'-'a');
}
else{
if(s[0]<='z'&&s[0]>='a') s[0]+=('A'-'a');
if(s[1]=='b') {s[1]='#';s[0]-=1;}
if(s[0]<'A') s[0]='G';
}
}
int covtonum(string s){
if(s=="A") return 1;
if(s=="A#") return 2;
if(s=="B") return 3;
if(s=="C") return 4;
if(s=="C#") return 5;
if(s=="D") return 6;
if(s=="D#") return 7;
if(s=="E") return 8;
if(s=="F") return 9;
if(s=="F#") return 10;
if(s=="G") return 11;
if(s=="G#") return 12;
}
int cmp(const item & a,const item & b){
return a.n<b.n;
}
void deal(item & a,item & b,item& c,string s){
cout<<s<<" ";
vector<item> vec(3); vec[0]=a; vec[1]=b; vec[2]=c;
sort(vec.begin(),vec.end(),cmp);
if(vec[0].n+4==vec[1].n&&vec[1].n+3==vec[2].n){
cout<<"is a "<<vec[0].s<<" Major chord.\n";
return;
}
if(vec[0].n+3==vec[1].n&&vec[1].n+4==vec[2].n){
cout<<"is a "<<vec[0].s<<" Minor chord.\n";
return;
}
vec[0].n+=12;
sort(vec.begin(),vec.end(),cmp);
if(vec[0].n+4==vec[1].n&&vec[1].n+3==vec[2].n){
cout<<"is a "<<vec[0].s<<" Major chord.\n";
return;
}
if(vec[0].n+3==vec[1].n&&vec[1].n+4==vec[2].n){
cout<<"is a "<<vec[0].s<<" Minor chord.\n";
return;
}
vec[0].n+=12;
sort(vec.begin(),vec.end(),cmp);
if(vec[0].n+4==vec[1].n&&vec[1].n+3==vec[2].n){
cout<<"is a "<<vec[0].s<<" Major chord.\n";
return;
}
if(vec[0].n+3==vec[1].n&&vec[1].n+4==vec[2].n){
cout<<"is a "<<vec[0].s<<" Minor chord.\n";
return;
}
cout<<"is unrecognized.\n";
return;
}
int main(){
//ifstream cin("in.txt");
int n1,n2,n3;
string s1,s2,s3,s;
while(getline(cin,s)){
istringstream is(s);
is>>s1>>s2>>s3;
init(s1);init(s2);init(s3);
n1=covtonum(s1);n2=covtonum(s2);n3=covtonum(s3);
item a(s1,n1),b(s2,n2),c(s3,n3);
deal(a,b,c,s);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -