c语言判断输入的三个整数是否有两个偶数一个奇数,若是则yes不是输出no,不用if 语句
时间: 2023-05-25 07:06:25 浏览: 80
可以使用位运算符和三目运算符来实现:
```c
#include <stdio.h>
int main() {
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
printf("%s", ((a & 1) + (b & 1) + (c & 1) == 1) ? "yes" : "no");
return 0;
}
```
解释:
- `a & 1` 表示 a 的二进制值与 1 进行按位与运算,结果为 1 表示 a 是奇数,为 0 表示 a 是偶数。
- `(a & 1) + (b & 1) + (c & 1)` 表示三个整数中奇数的个数,如果为 1,则有两个偶数一个奇数。
- `((a & 1) + (b & 1) + (c & 1) == 1) ? "yes" : "no"` 三目运算符的使用,如果奇数的个数为 1,则输出 "yes",否则输出 "no"。
相关问题
用c语言判断输入的三个整数中是否有两个偶数一个奇数,若是输出yes不是输出no
```c
#include <stdio.h>
int main() {
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
if ((a % 2 == 0 && b % 2 == 0 && c % 2 != 0) ||
(a % 2 == 0 && b % 2 != 0 && c % 2 == 0) ||
(a % 2 != 0 && b % 2 == 0 && c % 2 == 0)) {
printf("yes\n");
} else {
printf("no\n");
}
return 0;
}
```
或者:
```c
#include <stdio.h>
int main() {
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
int even_count = 0, odd_count = 0;
if (a % 2 == 0) {
even_count++;
} else {
odd_count++;
}
if (b % 2 == 0) {
even_count++;
} else {
odd_count++;
}
if (c % 2 == 0) {
even_count++;
} else {
odd_count++;
}
if (even_count == 2 && odd_count == 1) {
printf("yes\n");
} else {
printf("no\n");
}
return 0;
}
```
用c语言判断输入的三个整数中是否有两个偶数一个奇数
```
#include <stdio.h>
int main() {
int a, b, c;
printf("请输入三个整数:\n");
scanf("%d %d %d", &a, &b, &c);
if ((a % 2 == 0 && b % 2 == 0) || (a % 2 == 0 && c % 2 == 0) || (b % 2 == 0 && c % 2 == 0)) {
printf("有两个偶数一个奇数\n");
} else if ((a % 2 == 1 && b % 2 == 1) || (a % 2 == 1 && c % 2 == 1) || (b % 2 == 1 && c % 2 == 1)) {
printf("有两个奇数一个偶数\n");
} else {
printf("三个数中既有奇数又有偶数\n");
}
return 0;
}
```
解释:
先读入三个整数a、b、c,然后分别判断是否有两个偶数一个奇数、有两个奇数一个偶数和既有奇数又有偶数。
判断两个数是否同奇偶性,可以用“%2”运算符判断,如果余数为0则为偶数,否则为奇数。判断方法是用“&&”(表示逻辑与)连接两个判断式,如果两个数都满足为偶数或奇数,则整个式子的值为真(非0),进入相应的处理分支进行处理。