重新排列使之组成一个最大的整数。
给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。 本帖最后由 jackz007 于 2020-12-11 17:59 编辑#include <stdio.h>
int main(void)
{
char s ;
int d , i , j , k , m , n ;
fgets(s , 12 , stdin) ;
for(m = 0 ; s && s != '\n' ; m ++) ;
if(s == '\n') s = '\0' ;
if(m < 11) {
for(k = 0 ; k < m ; k ++) sscanf(& s , "%1d" , & d) ;
for(i = 0 ; i < m - 1 ; i ++) {
for(j = i + 1 ; j < m ; j ++) {
if(d < d) {
k = d ;
d = d ;
d = k ;
}
}
}
for(n = 0 , k = 0 ; k < m ; k ++) n = n * 10 + d ;
printf("%d\n" , n) ;
} else {
fprintf(stderr , "\n") ;
fprintf(stderr , "抱歉:数据位数超出整型数范围!\n") ;
fprintf(stderr , "\n") ;
}
}
编译、运行实况
D:\0002.Exercise\C>cl x.c
用于 x86 的 Microsoft (R) C/C++ 优化编译器 19.28.29334 版
版权所有(C) Microsoft Corporation。保留所有权利。
x.c
Microsoft (R) Incremental Linker Version 14.28.29334.0
Copyright (C) Microsoft Corporation.All rights reserved.
/out:x.exe
x.obj
D:\0002.Exercise\C>x
4567812
8765421
D:\0002.Exercise\C> 这个题目原来看到过,也曾对其输出质疑过,无奈人家答案就是答案,不按这么修改程序,过不了系统,看你这边的需求吧
// 给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。
#include<stdio.h>
#define n 5
int main()
{
int i = 0, j, k, temp, a;
printf("输入一组小于100的非负整数:");
for(i = 0;i < n;i++)
scanf("%d", &a);
k = i;
for(i = 0;i < k;i++)
{
for (j = 0;j < k - 1;j++)
{
if ((a >= 10) && (a >= 10) && (a < a))
{
temp = a;
a = a;
a = temp;
}
if ((a >= 10) && (a < 10) && (a / 10 < a))
{
temp = a;
a = a;
a = temp;
}
else if ((a < 10) && (a >= 10) && ((a <= a / 10) && (a % 10 != 0)))
{
temp = a;
a = a;
a = temp;
}
else if ((a < 10) && (a < 10) && (a < a))
{
temp = a;
a = a;
a = temp;
}
}
}
for (i = 0;i < k;i++)
printf("%d", a);
printf("\n");
}
*************************************************
输入一组小于100的非负整数:3 30 34 5 9
9534330
请按任意键继续 。 。 。
风过无痕1989 发表于 2020-12-11 18:19
这个题目原来看到过,也曾对其输出质疑过,无奈人家答案就是答案,不按这么修改程序,过不了系统,看你这边 ...
这个题目没有问题。输入的数字不能被分开。 永恒的蓝色梦想 发表于 2020-12-11 18:46
这个题目没有问题。输入的数字不能被分开。
也就是这个原因,我就非得在程序中加一个条件:a % 10 != 0 jackz007 发表于 2020-12-11 17:49
编译、运行实况
谢谢你朋友,数组元素是不能被拆开的哟 永恒的蓝色梦想 发表于 2020-12-11 18:46
这个题目没有问题。输入的数字不能被分开。
也正是这个原因,搞半天搞不对 风过无痕1989 发表于 2020-12-11 18:19
这个题目原来看到过,也曾对其输出质疑过,无奈人家答案就是答案,不按这么修改程序,过不了系统,看你这边 ...
太感谢了,今天四个题目得到你大力帮助
页:
[1]