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;
}

代码解释:

  • 首先,定义两个函数findMaxfindMin,分别用于找出数组中的最大值和最小值。这两个函数的参数为一个整型数组arr和数组的长度n
  • findMax函数中,定义一个变量max,初始值为数组的第一个元素。
  • 使用一个循环,遍历数组中的每个元素,更新max的值为当前元素和max的较大值。
  • 返回最大值max
  • findMin函数中,定义一个变量min,初始值为数组的第一个元素。
  • 使用一个循环,遍历数组中的每个元素,更新min的值为当前元素和min的较小值。
  • 返回最小值min
  • main函数中,使用一个循环,处理多组输入数据。当输入的T为0时,循环结束。
  • 在每组输入数据中,首先使用scanf函数读取整数T和n。
  • 使用一个循环,读取n个整数,存储在arr数组中。
  • 调用findMaxfindMin函数找出最大值和最小值,并判断它们的奇偶性。
  • 如果最大值和最小值的奇偶性相同,则输出"Yes";否则,输出"No"。
  • 注意:在示例代码中,我们假设输入的数据满足题目所给的约束条件。您可以根据实际情况进行调整。

希望这段代码能够帮助您解决问题,并通过编程挑战!

C语言实现最大最小值奇偶性判断:解决“傻瓜”挑战

原文地址: https://www.cveoy.top/t/topic/dpB7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录