C语言给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)

这个题目要求的输出是一串数字!!!

**不是下面:**输入在一行中给出 10 个非负整数,顺序表示我们拥有数字 0、数字 1、......数字 9 的个数。整数间用一个空格分隔。10 个数字的总个数不超过 50,且至少拥有 1 个非 0 的数字。

输入:5 8 5 5 1 1 0 0(输入8个数:两个0,两个1,三个5,一个8)

输出:10015558

代码如下:

#include <stdio.h>

int main()

{

int a[100];

int b[10]={0};

char ch;

int j,i=0;

do

{

scanf("%d", &a[i]);

i++;

} while ((ch = getchar()) != '\n');

for (j = 0; j < i; j++){

switch(a[j]){

case 0:b[0]++;break;

case 1:b[1]++;break;

case 2:b[2]++;break;

case 3:b[3]++;break;

case 4:b[4]++;break;

case 5:b[5]++;break;

case 6:b[6]++;break;

case 7:b[7]++;break;

case 8:b[8]++;break;

case 9:b[9]++;break;

}

}

for(i=1;i<10;i++)

{

if(b[i]!=0)

{

printf("%d",i);

b[i]--;

break;

}

}

for(i=0;i<10;i++)

{

for(j=0;j<b[i];j++)

{

printf("%d",i);

}

}

return 0;

}

结果如下:

思路:

这道题目首先现将输入的内容放到一个数组里面,然后通过一个switch得到每一个数字出现的个数。然后根据这个个数找到不为0的第一个数字作为首位然后再从小到大输出即可。

相关推荐
明天再做行么1 分钟前
健康养生资源合集(第二辑)
经验分享
小猪皮蛋粥8 分钟前
python画图
开发语言·python
Felven8 分钟前
A. The 67th Integer Problem
开发语言
zopple11 分钟前
Laravel7.x核心特性全解析
开发语言·php·laravel
不才小强12 分钟前
目标跟踪算法DeepSort实战
人工智能·算法·目标跟踪
wjs202412 分钟前
MVC 应用程序
开发语言
lly20240613 分钟前
ionic 模态窗口:全面解析与最佳实践
开发语言
小白学大数据14 分钟前
解决 Python 爬虫被限制:延迟抓取指令深度解析
开发语言·c++·爬虫·python
三品吉他手会点灯18 分钟前
C语言学习笔记 - 3. C概述 - C语言的起源和发展
c语言·笔记·学习
papership21 分钟前
【入门级-数学与其他:1.数及其运算:进制与进制转换:二进制、八进制、十进制、十六进制】
算法