#include"stdio.h"
int main(){
int n,i,j,t,sum1=0,sum2=0;
printf("请输入n个数");
scanf("%d",&n);
int a[n],b[n],length[n];
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(i=0;i<n;i++){
b[i]=a[i];
}
for(i=0;i<n;i++){
length[i]=0;
}
for(i=0;i<n;i++){
while(b[i]>0){
b[i]=b[i]/10;
length[i]=length[i]+1;
}
}
// for (i=0;i<n;i++){
// printf("%d\n",length[i]); //这部分是用来检测length中存储数组a[i]中各个数的长度
// }
for(i=0;i<n;i++){
for(j=0;j<n-i;j++){
sum1=a[j]*10^length[j+1]+a[j+1];
sum2=a[j+1]*10^length[j]+a[j];
if(sum1<sum2){
t=a[j+1];
a[j+1]=a[j];
a[j]=t;
}
sum1=0;
sum2=0;
}
}
for (i=0;i<n;i++){
printf("%d\t",a[i]);
}
}
我们这个方法适合新手的解决类似的问题,当你学习的更加深入,会调用各类函数时,就会发现有更简单的方法,我们先不进行探讨。
当前阶段的方法,我们主要通过将两个数一前一后相加,例如 输入的数是12 ,24 我们得到的sum1为1224 sum2为2412 再通过比较sum1 与sum2 就能得到我们想要的结论,外层,我们通过冒泡排序将我们得到的数进行排序就能解决类似问题。
接下来我为大家展示运行效果