我先用q[0]代表出現次數,
q[1]代表ASCII值大小,
然後再來整哩,
怎麼會有錯勒?
#include <iostream>
using namespace std;
int main()
{
int q[2][150];
string a;
while(cin>>a){
for(int i=0;i<150;i++){
q[0][i]=0;
q[1][i]=i;
}
for(int i=0;i<a.size();i++){
q[0][a[i]]++;
}
for(int i=0;i<149;i++){
for(int j=i+1;j<150;j++){
if(q[0][i]>q[0][j]){
q[0][i]=q[0][i]+q[0][j];
q[0][j]=q[0][i]-q[0][j];
q[0][i]=q[0][i]-q[0][j];
q[1][i]=q[1][i]+q[1][j];
q[1][j]=q[1][i]-q[1][j];
q[1][i]=q[1][i]-q[1][j];
}
else if(q[0][i]==q[0][j]&&q[1][i]<q[1][j]){
q[0][i]=q[0][i]+q[0][j];
q[0][j]=q[0][i]-q[0][j];
q[0][i]=q[0][i]-q[0][j];
q[1][i]=q[1][i]+q[1][j];
q[1][j]=q[1][i]-q[1][j];
q[1][i]=q[1][i]-q[1][j];
}
}
}
for(int i=0;i<150;i++){
if(q[0][i]>0){
printf("%d %d\n",q[1][i],q[0][i]);
}
}
printf("\n");
}
return 0;
}
沒事了XD...
原來是因為一次讀取一行= ="