一、链接
二、题目
三、注意
1.分屏(导致我多加了给\n,一直格式错误)
未分屏 :
分屏影响:
分屏:
四、代码
#include<bits/stdc++.h>
using namespace std;
bool cmp(int x,int y)
{
return x>y;
}
int main()
{
string number;
int num[10]={0};
int flag[10]={0};
int order[11]={0};
int k=0,n=0;
cin>>number;
for(int i=0;i<11;i++)
{
switch(number[i])
{
case '0':num[0]++;break;
case '1':num[1]++;break;
case '2':num[2]++;break;
case '3':num[3]++;break;
case '4':num[4]++;break;
case '5':num[5]++;break;
case '6':num[6]++;break;
case '7':num[7]++;break;
case '8':num[8]++;break;
case '9':num[9]++;break;
}
}
for(int j=0;j<10;j++)
{
if(num[j]!=0)
{
flag[k]=j;
k++;
}
}
sort(flag,flag+k,cmp);//数组名,元素数,元素大小,比较函数名
for(int l=0;l<11;l++)
{
for(int m=0;m<k;m++)
{
if(number[l]==flag[m]+'0')
{
order[n]=m;
n++;
}
}
}
printf("int[] arr = new int[]");
printf("{");
for(int o=0;o<k;o++)
{
if(o!=k-1)
printf("%d,",flag[o]);
else
printf("%d};\n",flag[o]);
}
printf("int[] index = new int[]");
printf("{");
for(int p=0;p<n;p++)
{
if(p!=n-1)
printf("%d,",order[p]);
else
printf("%d};\n",order[p]);
}
return 0;
}