输入一个三位的整数,如果它有且仅有两位数码相同,那么就输出Yes,否则输出No,用C语言
时间: 2024-10-11 18:17:42 浏览: 42
在C语言中,你可以使用循环和条件判断来解决这个问题。下面是一个简单的示例程序:
```c
#include <stdio.h>
int main() {
int num;
printf("请输入一个三位的整数: ");
scanf("%d", &num); // 从键盘读取输入
// 将数字转换为字符串便于处理
char str[5];
itoa(num, str, 10);
if (strlen(str) != 3) { // 检查是否为三位数
printf("无效输入!\n");
return 0;
}
// 对字符串中的字符计数
int count[10] = {0}; // 初始化计数数组
for (int i = 0; i < 3; i++) {
count[str[i]-'0']++; // 加一对应数字的计数
}
// 检查是否有两个相同的字符
int same_count = 0;
for (int i = 0; i < 10; i++) {
if (count[i] > 1) {
same_count++;
if (same_count > 1) break; // 只需找到第二个相同的即可
}
}
if (same_count == 1) {
printf("Yes\n");
} else {
printf("No\n");
}
return 0;
}
```
这个程序首先获取用户的输入,并检查是否为三位数。然后将数字转换为字符串,遍历每个字符并统计其出现次数。如果有且仅有两个字符的计数大于1,就输出"Yes";否则输出"No"。
阅读全文