Rank The Teams
#include <iostream>
using namespace std;
int exist(char);
char team[26];
int main()
{
char team1,team2;
int i,j,num=0;
while(cin>>team1>>team2)
{
bool flag=false;
if(exist(team1))
{
i=exist(team1)-1;
flag=true;
}
else
{
team[num]=team1;
num++;
}
if(exist(team2))
{
j=exist(team2)-1;
flag=true;
}
else
{
team[num]=team2;
num++;
}
if(flag&&i>j)
{
char temp=team[i];
team[i]=team[j];
team[j]=temp;
}
}
for(i=0;i<num;i++)
{
cout<<team[i];
if(i<num-1)
cout<<" ";
else
cout<<endl;
}
return 0;
}
int exist(char t)
{
for(int i=0;i<26;i++)
if(t==team[i])
return i+1;
return 0;
}
哪位高手帮忙看看这个程序用到的主要的算法及其主要的思想是什么?谢谢
[解决办法]
主要算法:就是函数调用还有就是数组中的两个字符的交换!
主要思想:就是输入字符,如果不存在就添加到team数组中,如果存在就比较这两个字符在数组中的位置,如果先输入的字符的位置在后输入的字符的位置的前面就交换两个字符的位置(只要有一个字符存在在数组中就可以比较了!),最后再输出这个数组!