题目:输入一个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;
}
/// <summary>
/// 判断一个九位的无符号整数是否存重复数字
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
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) {//如果某个数字的出现次数大于1的话,则存在重复
return true;
}
}
return false;//如果没有重复,则返回false
}
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » 每日一题——第八十八题
发表评论 取消回复