用c语言完成上述问题
时间: 2024-10-18 20:10:03 浏览: 22
头歌c语言实验之机器人能否返回原点.zip
在C语言中,你可以使用类似的方法来解决这个问题。由于C语言没有内置的字符串处理函数,我们需要手动遍历数组。这里是一个简单的实现:
```c
#include <stdio.h>
// 函数声明
int find_digit(int num, int target);
// 主函数
int main() {
int number, target;
printf("请输入一个正整数:");
scanf("%d", &number);
printf("请输入需要查找的数字:");
scanf("%d", &target);
// 调用函数
int result = find_digit(number, target);
if (result == 1) {
printf("%d 在 %d 的各位上存在。\n", target, number);
} else {
printf("%d 不在 %d 的各位上。\n", target, number);
}
return 0;
}
// 查找函数
int find_digit(int num, int target) {
// 数组表示每一位,从最低位到最高位
int digits[10];
int index = 0;
while (num > 0) {
digits[index++] = num % 10; // 取余得到当前位
num /= 10; // 移除最低位
}
// 逆序数组,因为是从低位开始存储的
for (int i = 0; i < index / 2; i++) {
int temp = digits[i];
digits[i] = digits[index - i - 1];
digits[index - i - 1] = temp;
}
for (int digit : digits) {
if (digit == target) {
return 1;
}
}
return 0;
}
```
在这个C程序中,我们首先读取用户输入的两个数,然后调用`find_digit`函数判断目标数字是否存在于给定的正整数的所有位上。
阅读全文