思路:分开求
#include<stdio.h>
int main()
{
int num[10]={0},arr[10],index[12],j=0,val[11];
char tel;
for(int i=0;i<11;i++)
{
scanf("%c",&tel);//字符能单个输入,数字不行哦
num[tel-'0']++;//记录出现的数字,就是第一行输出中的东西
val[i]=tel-'0';//记录号码
}
printf("int[] arr = new int[]{");
for(int i=9;i>=0;i--)//符合arr中的数字必须按递减顺序给出
{
if(num[i]!=0)
{
if(j!=0) printf(",");
arr[j]=i;
printf("%d",arr[j]);//先输出arr中的数字
j++;
}
}
printf("};\n");
for(int i=0;i<11;i++)
{
for(int k=0;k<j;k++)
{
if(arr[k]==val[i])//号码与arr中值的比对
{
index[i]=k;//符合保存下标
break;
}
}
}
printf("int[] index = new int[]{");
for(int i=0;i<11;i++)
{
printf("%d",index[i]);
if(i!=10) printf(",");
else printf("};");
}
return 0;
}