输入一个三位的整数,如果它有且仅有两位数码相同,那么就输出Yes,否则输出No。c语言
时间: 2024-10-08 16:26:05 浏览: 21
c代码-9.键盘输入一个三位数的正整数,其个位与百位相加若等于十位上的数字则输出"Yes",否则输出"No"。例如,输入"176",则输出"Yes"。输入"258",则输出"No"
在C语言中,你可以通过遍历每一位数字并检查是否只有一位与其他位不同来解决这个问题。下面是一个简单的示例程序:
```c
#include <stdio.h>
int main() {
int num;
printf("请输入一个三位数: ");
scanf("%d", &num);
// 将数字转换为字符串以便于处理每一位
char str[4];
itoa(num, str, 10);
// 检查每一位是否仅有一处差异
int count = 0;
for (int i = 0; i < 3; ++i) {
if (str[i] != str[i + 1]) {
count++;
if (count > 1) { // 如果发现超过一处差异,直接返回NO
printf("No\n");
return 0;
}
} else if (i == 2 && str[i] != str[0]) { // 需要检查最后一个字符是否与第一个不同
printf("No\n");
return 0;
}
}
// 如果满足条件(只有一位数码与其他两位不同),则输出YES
printf("Yes\n");
return 0;
}
```
在这个程序中,我们首先读取用户输入的三位数,然后将其转换成字符串便于逐位比较。接着遍历每一位,如果发现有两个位置的数字相同,则增加计数器。如果计数器大于1,表示有多于一位的数字相同,立即返回"No";否则,在完成所有位的检查后,如果只有一个地方不同,输出"Yes"。
阅读全文