L1-027 出租
思路
可以把题目分为五个部分
1.先将电话号码的数字进行统计
2.按大小顺序确定arr数组
3.再根据arr数组确定index数组
4.输出arr数组
5.输出index数组
确定arr数组的方法
for(j=9;j>=0;j--){ //将arr数组按从大到小的顺序进行排序
if(b[j]!=0){
arr[k]=j;
k++;
}
}
源码
#include<stdio.h>
#include<string.h>
int main(){
char a[12];
static int b[10];
int c[10],d[12];
int i,j,k=0,m;
gets(a);
for(i=0;a[i]!='\0';i++){ //将数的个数进行统计
m=(a[i]-'0');
b[m]++;
}
for(j=9;j>=0;j--){ //将arr数组按从大到小的顺序进行排序
if(b[j]!=0){
c[k]=j;
k++;
}
}
for(j=0;a[j]!='\0';j++){ //根据arr数组确定index数组
for(i=0;i<k;i++){
if((a[j]-'0')==c[i]){
d[j]=i;
}
}
}
printf("int[] arr = new int[]{"); //输出arr数组
for(i=0;i<k-1;i++){
printf("%d,",c[i]);
}
printf("%d};\n",c[i]);
printf("int[] index = new int[]{"); //输出index数组
for(j=0;j<11-1;j++){
printf("%d,",d[j]);
}
printf("%d};",d[j]);
return 0;
}