用c语言判断输入数中是否每位数都不同
时间: 2024-11-20 20:38:14 浏览: 10
在C语言中,你可以通过遍历每一位数字并将其存储在一个临时数组或集合中来判断输入的整数是否每个位上的数字都不相同。以下是一个简单的示例程序:
```c
#include <stdio.h>
#include <stdbool.h> // 引入bool类型
bool is_unique_digits(int num) {
int digits[10] = {0}; // 初始化一个长度为10的数组用于存储每一位数字
while (num > 0) {
int digit = num % 10; // 取出当前数字
if (digits[digit] == 1) {
return false; // 如果该位置已经有数字,则不是唯一
}
digits[digit] = 1; // 标记该位置的数字已存在
num /= 10; // 移除最低位的数字
}
return true; // 遍历结束后所有数字均唯一
}
int main() {
int input;
printf("请输入一个整数: ");
scanf("%d", &input);
if (is_unique_digits(input)) {
printf("输入的数每位数字都不相同。\n");
} else {
printf("输入的数有重复的数字。\n");
}
return 0;
}
```
这个程序首先初始化一个数组`digits`,然后对输入的数字取余数得到每一位,如果该位已经在数组中出现过(即`digits[digit] == 1`),则返回`false`;否则将该位设为1,并继续处理下一位。当所有的位都被检查完后,如果没有发现重复,函数返回`true`。
阅读全文