从理论上讲,我知道如何解决这个问题。
例如,如果给定的输入是9536,则输出将是9653。
我想要一种方法来做到这一点,使用连接,并在每个数字之间循环,当找到一个比其他数字更大的数字时,它被存储为空字符串r中的第一个“字符”。
我可以使用php(我的主要语言)来解决这个问题,但不能使用C。我正在准备一个实验职位,这个实验使用C作为他们的主要语言,所以我正在努力温习我的基本C语言技能。
谢谢你的帮助
发布于 2015-03-17 00:57:22
三个步骤:
中的每个数字
发布于 2015-03-17 01:18:06
使用提供的qsort()很容易进行排序。在本例中,我可以直接要求输入字符串,但您需要的是整数。它没有使用您想要的“连接”,但是您没有显示任何代码。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int compare(const void *A, const void *B) {
return *(char*)B - *(char*)A;
}
int main() {
int number;
char numstr[21];
printf("Enter an integer: ");
if (scanf("%d", &number) != 1)
return 1;
sprintf (numstr,"%d", number);
qsort(numstr, strlen(numstr), 1, compare);
printf("%s\n", numstr);
return 0;
}程序输出:
Enter an integer: 9536
9653https://stackoverflow.com/questions/29082500
复制相似问题