如何迭代给定的整数输入,并将最大的数字输出为最小的数字?

时间:2015-03-16 16:50:36

标签: c loops syntax concatenation

理论上,我明白如何解决这个问题。

例如,如果给定输入为9536,则输出为9653。

我想要一种方法来使用连接,并循环显示每个数字,当找到比其余数字大的数字时,它将被存储为第一个字符'在一个空字符串r。

我能够使用php(我的主要语言)解决这个问题,但不能解决这个问题。我正在准备实验室职位,这个实验室使用C作为他们的主要语言,所以我正在努力提高我的基本C技能。

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

三个步骤:

  1. 一次读取输入的一个字符,将字符转换为整数并存储为整数数组。
  2. 排序数组
  3. 打印(现已排序)数组中的每个数字

答案 1 :(得分:0)

使用提供的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
9653