题目:输入一个9位的无符号整数,判断其是否有重复数字
#include<stdio.h>
#include<stdbool.h>
#include<string.h>
int main() {
char num_str[10];
printf("请输入一个9位数的无符号数:");
scanf_s("%9d", &num_str);
if (strlen(num_str) != 9) {
printf("输入的不是一个9位无符号整数,请重新输入");
}
else
{
if (hasDuplicateDigits(num_str)) {
printf("输入的有输入数字\n");
}
else
{
printf("输入的没有输入数字\n");
}
}
return 0;
}
bool hasDuplicateDigits(const char* str) {
int digits[10] = { 0 };
for (int i = 0; str[i] != '\0'; i++)
{
int digit = str[i] - '0';
if (++digits[digit] > 1) {
return true;
}
}
return false;
}