思路写在注释里啦。
如果你有更简单的,欢迎交流!
#include<stdio.h>
int main(void)
{
int i,j,n,a[10],b[50]; // 数组 a是题目输入的十个数字 ,数组 b是 a所代表的所有数字
for (i=0; i<10; i++)
scanf("%d", &a[i]);
int x=0;
for (i=0; i<10; i++){ // 把 a代表的所有数字都输入到 b里
for (j=0; j<a[i]; j++){
b[x] = i;
x ++;
}
}
int t;
for (i=0; i<x; i++){
if (b[i] != 0){ //因为 0不能作第一个数字,所以先输出一个不为 0的数字
printf("%d", b[i]);
t = i; //因为此时 i下标的数字已输出,后面不能再输出它了,
break; //所以这里用 t记住此 i的位置 。
}
}
for (i=0; i<x; i++){
if (i != t) // 若不是上面已输出的数字, 直接输出即可
printf("%d", b[i]);
else
continue;
}
return 0;
}