所以我在 C 中得到了以下任务:用户输入两个整数,我们称它们为 n1 和 n2,使得 n1<=n2。 程序必须打印n1和n2(包括n1和n2)之间所有可能的整数,并且数字中的所有数字的值都在增加。 例如,如果用户输入 1234 和 1260,程序将打印 1236,1237,1238,1239,但不会打印 1240,因为 0 小于 4。 然后它会打印 1356,1357,1358,1359。
我不允许使用数组(否则会很容易)、函数,甚至幂函数。 所以我想出了下一个伪代码:
- 创建一个循环,获取数字 n1,并计算它的位数。
- 然后进行一个循环,除以 n1(位数-1)次,然后用其结果的余数,它将执行 % 。 此时您还剩下一些数字。
- 然后再取n1,除以(位数-2)次,然后用结果的余数,就可以得到%。 此时您还剩下一些数字。
- 比较两个数字。如果第一个数字小于第二个数字,则通过提升数字位置 (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/