解题思路:
1.输入电话号码,对电话号码进行拆分 int a[10]={0};
2.把a的值从大到小赋给b,在输出b
3.依次遍历电话号码和b,遇到相等则输出位置
#include <stdio.h>
int main()
{
char te[12];
int a[10]={0},b[10]={0},k=0;
scanf("%s",te);
for(int i=0;i<11;i++)
a[te[i]-'0']++;
for(int i=9;i>=0;i--)
{
if(a[i]>0)
b[k++]=i;
}
printf("int[] arr = new int[]{");
for(int i=0;i<k;i++)
{
printf("%d",b[i]);
if(i!=k-1)
printf(",");
}
printf("};\nint[] index = new int[]{");
for(int i=0;i<11;i++)
{
for(int j=0;j<k;j++)
{
if(te[i]-'0'==b[j])
{
printf("%d",j);
break;
}
}
if(i!=10)
printf(",");
}
printf("};");
return 0;
}