实验7-1-12 组个最小数 (20分)_c语言

#include<stdio.h>
#include<ctype.h>
#include<string.h>
#include<math.h>
#include<stdlib.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++){ //a[i]就是表示这一位有多少个“0 - 9”之间(数字为i)的数
b[x] = i; //把这一位的a[i]个i都保存在数组b中
x++;
}

int t;

for (i = 0; i < x; i++) //上一个for循环结束后b数组一共有x个元素
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;
}