如何在C语言编程中求取三个数中的最大值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在C语言编程中求取三个数中的最大值相关的知识,希望对你有一定的参考价值。

参考技术A

编写一个C程序,运行时输入a,b,c三个值,输出其中值最大者的步骤:

1、首先输入三个数,求三个数中的最大值

#include<stdio.h>

int main()    int max(int x,int y,int z);    int a,b,c,m;    scanf("%d,%d,%d",&a,&b,&c);    m=max(a,b,c);    printf("the max number is %d\\n",m);    return 0;

2、然后输入

int max(int x,int y,int z)    int max2(int a,int b);    int temp,result;    temp=max2(x,y);    result=max2(temp,z);

return(result);

3、最后输入

int max2(int a,int b)    int q;    if(a>b)q=a;    else q=b;    return(q);即可。

数组任意取三个数中乘积最大值

一、给定一个整型数组,包括正负值,找出取任意三个值的乘积最大

  1、对整型排序(这里使用堆排序)

    

//堆排序
    private static void headSort(int arr[], int len) 
        int s = len / 2;
        for (int i = s; i >= 0; i--) 
            hSort(arr, i, len);
        

        for (int i = len; i >0 ; i--) 
            swap(arr, 0 , i);
            hSort(arr, 0, i-1);
        
    

    private static void swap(int arr[], int s, int n) 
        int t = arr[s];
        arr[s] = arr[n];
        arr[n] = t;
    

    private static void hSort(int arr[], int s, int len) 
        int v = arr[s];

        for (int i = 2 *s + 1; i < len; i*=2) 
            if (i < len && arr[i] < arr[i+1]) 
                i = i + 1;
            
            if (v >= arr[i]) break;
            arr[s] = arr[i];
            s = i;
        

        arr[s] = v;
    

  2、最大值只能是最小两个和最大一个或者最大三个值的乘积

  

private static int findMaxSub(int arr[], int len) 
        return Math.max(arr[0] * arr[1] * arr[len-1], arr[len - 3] * arr[len - 2] * arr[len - 1]);
    

  3、测试

  

    public static void main(String[] args) 
        int arr[] = -3, -5, -8, 0, 2, 4, 6;
        headSort(arr, arr.length - 1);
        System.out.println(findMax(arr, arr.length));
    

  

以上是关于如何在C语言编程中求取三个数中的最大值的主要内容,如果未能解决你的问题,请参考以下文章

小白.C语言怎么求多个数的最大值

用C语言,任意输入10个数,求其中的最大值和最小值

C语言,输出两个数的最大供约数和最小公倍数,

求解答 c语言

c语言求两个数之间的和跟差

c语言:如果有一大堆数,怎么找出其中出现次数最多的那个