从键盘输入两个正整数m和n,输出m与n之间有任何一位数是9的整数。c语言
时间: 2024-05-28 21:08:53 浏览: 138
当我谈到的笑话是:为什么鱼不喜欢开玩笑?因为它们会变成海里的狮子!
至于你的问题,可以使用以下代码实现:
#include <stdio.h>
int main() {
int m, n;
printf("请输入两个正整数m和n:");
scanf("%d %d", &m, &n);
int i;
for(i = m; i <= n; i++) {
if(i % 10 == 9 || i / 10 == 9) {
printf("%d\n", i);
}
}
return 0;
}
相关问题
用c语言写一个编程要求从键盘输出两个正整数m和n,输出m~n之间(包括m和n)能被3整除且至少有一位数字是5的所有整数。每行输出3个数据,数据之间用制表符分隔。
在C语言中,可以使用循环和条件判断来实现这个需求。下面是一个简单的示例程序:
```c
#include <stdio.h>
#include <string.h> // 引入字符串库获取strlen函数
void print_numbers(int m, int n) {
for (int i = m; i <= n; ++i) {
char str[10]; // 存储每一位的字符
sprintf(str, "%d", i); // 将数值转换成字符串
// 检查每一位是否有数字5,并且整个数能被3整除
bool has_five = false;
for (int j = 0; j < strlen(str); ++j) {
if (str[j] - '0' == 5) { // 对比ASCII码值,找到5对应的数字
has_five = true;
break;
}
}
if (i % 3 == 0 && has_five) {
// 输出3个连续的数字,每行三个
if ((i - m) % 3 == 0) { // 首次输出
for (int k = 0; k < 3; ++k) {
printf("%d\t", i++);
if (k == 2 || (i - m) % 3 != 0) { // 每行输出完或下一个3的倍数才换行
printf("\n");
}
}
} else { // 已经输出过,继续当前行
printf("%d\t", i);
}
}
}
}
int main() {
int m, n;
printf("请输入两个正整数m和n,用空格分隔:");
scanf("%d %d", &m, &n);
print_numbers(m, n);
return 0;
}
```
注意:这个程序假设输入的m和n都是正整数,并且不会太大导致内存溢出。
“回文数”是一种数字。如:98789,这个数字正读是98789,倒读也是98789,正读倒读一样,所以这个数字就是回文数。 由键盘输入两个正整数m和n,请你用循环输出m和n之间(含m和n)的所有回文数。用C语言
在C语言中,你可以使用嵌套循环来找出给定范围内的所有回文数。首先,我们需要创建两个for循环,外层循环遍历从m到n的所有整数,内层循环则是为了检查当前数是否是回文。以下是实现的步骤:
```c
#include <stdio.h>
// 判断一个数是否是回文
int isPalindrome(int num) {
int reversed = 0, original = num;
while (num != 0) {
int remainder = num % 10; // 取余数得到最后一位
reversed = reversed * 10 + remainder; // 将剩余位添加到反转数中
num /= 10; // 移除最低位
}
return original == reversed;
}
int main() {
int m, n;
printf("请输入起始范围(m): ");
scanf("%d", &m);
printf("请输入结束范围(n): ");
scanf("%d", &n);
if (m > n) { // 确保m小于等于n
int temp = m;
m = n;
n = temp;
}
for (int i = m; i <= n; ++i) {
if (isPalindrome(i)) {
printf("%d ", i); // 如果是回文数就打印出来
}
}
printf("\n");
return 0;
}
阅读全文