c - 如何比较数字任务

标签 c list loops

所以我在 C 中得到了以下任务:用户输入两个整数,我们称它们为 n1 和 n2,使得 n1<=n2。 程序必须打印n1和n2(包括n1和n2)之间所有可能的整数,并且数字中的所有数字的值都在增加。 例如,如果用户输入 1234 和 1260,程序将打印 1236,1237,1238,1239,但不会打印 1240,因为 0 小于 4。 然后它会打印 1356,1357,1358,1359。

我不允许使用数组(否则会很容易)、函数,甚至幂函数。 所以我想出了下一个伪代码:

  1. 创建一个循环,获取数字 n1,并计算它的位数。
  2. 然后进行一个循环,除以 n1(位数-1)次,然后用其结果的余数,它将执行 % 。 此时您还剩下一些数字。
  3. 然后再取n1,除以(位数-2)次,然后用结果的余数,就可以得到%。 此时您还剩下一些数字。
  4. 比较两个数字。如果第一个数字小于第二个数字,则通过提升数字位置 (digitsNum--) 继续比较数字。
    • 循环执行步骤 2-3-4。
    • 如果一切正常,则打印 n1;
    • 提升 n1 (n1++),(最多 n2)
    • 再次循环所有内容。

问题是,由于我可以使用的内容受到所有限制,我发现我的解决方案很难实现,一旦开始,我就会陷入一团糟。 关于如何改进它有什么建议吗?

最佳答案

希望对您有帮助。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
        int num;;
        int num2;
        int flag=-1;
        int i=0,j=0;
        int rem,rem2;
        printf("Enter First Number\n");
        scanf("%d",&num);
        printf("Enter Second Number\n");
        scanf("%d",&num2);
        if(num>num2)
        {
                printf("Wrong inputs have given\n");
                exit(0);
        }
        int div=num2-num;
        for(i=0;i<=div;i++)
        {
                num2=(num+i);
                rem=(num2)%10;
                num2/=10;
                rem2=(num2)%10;
                if(rem>rem2)
                {
                        printf("....%d\n",num+i);
                }
        }
        return 0;
}

关于c - 如何比较数字任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40807495/

相关文章:

c# - 调用返回字符串数组的函数

python - 嵌套列表和 count()

javascript - 停止 setTimeout 延迟首次运行

c++ - 关于 while() 中的 isalpha() 是微不足道的

c - 如何将 GtkWindow 的背景设置为图像?

c - GCC 前向声明和 __may__alias

c - 如何从字符数组复制到字符指针?

python - 更新一个实例属性的最有效方法

基于向量重叠从列表中删除和添加元素

javascript - 检查第一个空白单元格的函数