C语言实现最大最小值奇偶性判断:解决“傻瓜”挑战
C语言实现最大最小值奇偶性判断:解决“傻瓜”挑战
“用C语言BHYZ将自己做好的数学题拿给说她傻的人看,没想到他们对此却是不屑一顾,说道:‘这种题目也敢拿出来丢人现眼,想证明你不傻,除非你做出我这道题’。真是气煞我也,HYZ怒到:‘给我!’。HYZ接到题目一看,发现是她的题目的升级版,心里顿时乐开了花。题目大意是:找出输入数据的最大值和最小值,并判断它们的奇偶性,奇偶性若相同则输出Yes,若不同则输出No。”
输入格式:
输入数据有多组,每组占一行,输入一个整数T,下面跟进T行,每行的第一个整数是n,表示需要统计的数值的个数,然后是n个整数;如果T=0,则表示输入结束,该行不做处理。
输出格式:
对于每组输入数据,判断其中最大值和最小值的奇偶性,若相同则输出Yes,若不同则输出No。
输入样例:
2
5 1 2 3 4 5
2 3 4
0
输出样例:
Yes
No
C语言解决方案:
#include <stdio.h>
int findMax(int arr[], int n) {
int max = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
int findMin(int arr[], int n) {
int min = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
return min;
}
int main() {
int T;
while (scanf("%d", &T) == 1 && T != 0) {
for (int i = 0; i < T; i++) {
int n;
scanf("%d", &n);
int arr[n];
for (int j = 0; j < n; j++) {
scanf("%d", &arr[j]);
}
int max = findMax(arr, n);
int min = findMin(arr, n);
if ((max % 2 == 0 && min % 2 == 0) || (max % 2 == 1 && min % 2 == 1)) {
printf("Yes\n");
} else {
printf("No\n");
}
}
}
return 0;
}
代码解释:
- 首先,定义两个函数
findMax和findMin,分别用于找出数组中的最大值和最小值。这两个函数的参数为一个整型数组arr和数组的长度n。 - 在
findMax函数中,定义一个变量max,初始值为数组的第一个元素。 - 使用一个循环,遍历数组中的每个元素,更新
max的值为当前元素和max的较大值。 - 返回最大值
max。 - 在
findMin函数中,定义一个变量min,初始值为数组的第一个元素。 - 使用一个循环,遍历数组中的每个元素,更新
min的值为当前元素和min的较小值。 - 返回最小值
min。 - 在
main函数中,使用一个循环,处理多组输入数据。当输入的T为0时,循环结束。 - 在每组输入数据中,首先使用
scanf函数读取整数T和n。 - 使用一个循环,读取n个整数,存储在
arr数组中。 - 调用
findMax和findMin函数找出最大值和最小值,并判断它们的奇偶性。 - 如果最大值和最小值的奇偶性相同,则输出"Yes";否则,输出"No"。
- 注意:在示例代码中,我们假设输入的数据满足题目所给的约束条件。您可以根据实际情况进行调整。
希望这段代码能够帮助您解决问题,并通过编程挑战!
原文地址: https://www.cveoy.top/t/topic/dpB7 著作权归作者所有。请勿转载和采集!