复制
收藏
提问
简洁
c语言输入两个10以内的自然数,输出100到999之间与这两个数有关的数(如输入1和7,输出107、117、127、……、171、172、……、217、317……917等)。
4月前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
在C语言中,要实现输入两个10以内的自然数,并输出100到999之间与这两个数有关的数,可以通过嵌套循环来实现。具体思路是:首先,使用两个循环分别遍历两个输入的自然数,然后在内层循环中生成以这两个数为百位和个位的所有三位数,并且保证这个三位数在100到999之间。以下是实现这一功能的C语言代码示例:
#include <stdio.h>
int main() {
int a, b;
printf("请输入两个10以内的自然数,用空格隔开:");
scanf("%d %d", &a, &b);
// 确保输入的数在1到10之间
if (a < 1 || a > 10 || b < 1 || b > 10) {
printf("输入的数必须在1到10之间。\n");
return 1; // 非法输入时退出程序
}
// 外层循环控制百位,内层循环控制个位
for (int i = 1; i <= 9; i++) { // 百位从1到9,因为100到999之间
for (int j = 0; j < 10; j++) { // 十位从0到9
if (i == a || j == a || i == b || j == b) { // 如果当前位与输入的数有关
int number = 100 * i + 10 * j + (a == b ? a : b); // 构造三位数
if (number >= 100 && number <= 999) { // 确保在100到999之间
printf("%d ", number);
}
}
}
}
printf("\n");
return 0;
}
这段代码首先通过scanf
函数读取用户输入的两个自然数a
和b
,然后通过两层循环遍历所有可能的三位数。在内层循环中,如果当前的百位或十位数字与输入的a
或b
相匹配,就构造一个三位数,并检查这个数是否在100到999之间,如果是,则将其打印出来。
请注意,这段代码假设用户输入的两个数是1到10之间的自然数,并且如果a
和b
相同,那么个位将使用这个相同的数字。如果a
和b
不同,个位将使用另一个数字。这样可以保证输出的数与输入的两个数都有关系。
你觉得结果怎么样?