如何在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语言编程中求取三个数中的最大值的主要内容,如果未能解决你的问题,请参考以下文章