用c语言编写一个程序任意输入一个三位数,如果有且仅有两个数字相同,则输出1,否则输出0。
时间: 2023-05-24 12:05:32 浏览: 247
```c
#include <stdio.h>
int main() {
int num;
printf("请输入一个三位数:");
scanf("%d", &num);
int d1 = num / 100; // 百位数字
int d2 = num % 100 / 10; // 十位数字
int d3 = num % 10; // 个位数字
if (d1 == d2 && d2 != d3 || d1 == d3 && d3 != d2 || d2 == d3 && d3 != d1) {
printf("1\n");
} else {
printf("0\n");
}
return 0;
}
```
在这个程序中,我们首先通过 `scanf` 函数从用户输入中读入一个三位数。然后,我们用取整和取余的方法分别得到该数字的百位、十位和个位数字 `d1`、`d2` 和 `d3`。接下来,我们使用逻辑表达式判断该三位数中是否存在恰好两个数字相同的情况,如果是则输出1,否则输出0。最后返回程序执行成功的信号。
相关问题
任意输入一个三位数,如果有且仅有两个数码相同,则输出1,否则输出0 用c语言
在C语言中,我们可以使用条件控制结构和数组操作来实现这个功能。以下是一个简单的程序示例:
```c
#include <stdio.h>
int checkDuplicate(int num) {
int digits[10] = {0}; // 初始化一个存储数字出现次数的数组
int duplicate = 0; // 统计是否有重复的数码
// 将输入的三位数转换成字符数组便于处理
char str[4];
sprintf(str, "%d", num);
// 遍历每一位数字
for (int i = 0; i < 3; i++) {
int digit = str[i] - '0'; // 转换为整数
digits[digit]++;
// 如果当前数字已经出现两次,说明找到了重复
if (digits[digit] == 2) {
duplicate = 1;
break;
}
}
return duplicate; // 返回结果:1表示有重复,0表示无重复
}
int main() {
int input;
printf("请输入一个三位数:");
scanf("%d", &input);
if (checkDuplicate(input)) {
printf("1\n"); // 输出1
} else {
printf("0\n"); // 输出0
}
return 0;
}
```
在这个程序中,`checkDuplicate`函数接收一个三位数作为输入,通过遍历每一位并更新`digits`数组,然后检查是否存在重复的数码。如果找到重复,返回1;否则返回0。
C语言 任意输入一个三位数,如果有且仅有两个数位相同,则输出1,否则输出0。
在C语言中,你可以使用循环、条件判断和数组来实现这个功能。这里是一个简单的示例程序:
```c
#include <stdio.h>
int main() {
int num, first_digit, second_digit, third_digit;
printf("请输入一个三位数:");
scanf("%d", &num); // 获取用户输入的三位数
first_digit = num / 100; // 取百位数字
second_digit = (num % 100) / 10; // 取十位数字
third_digit = num % 10; // 取个位数字
if ((first_digit == second_digit && first_digit != third_digit) ||
(second_digit == third_digit && second_digit != first_digit)) {
printf("1\n"); // 如果有两个数位相同且不等于第三个,输出1
} else {
printf("0\n"); // 否则,输出0
}
return 0;
}
```
在这个程序中,我们首先通过除法和取余操作分别获取输入数的每个数位。然后检查这三个数位是否只有两个相等。如果是,就输出1;如果不是,输出0。
阅读全文