用C++语言写一个求四个数的最大值最小值

贰叁rom 2017-03-30 06:04:18
用C++语言写一个求四个数的最大值最小值,在主函数中怎么写呀
...全文
4319 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_42359982 2018-12-10
  • 打赏
  • 举报
回复
回个贴赚点微薄的分数
LandyTan 2018-12-09
  • 打赏
  • 举报
回复
/************************************************************/
/* Copyright (C) 2018-2028 MisdStudio.Co,Ltd */
/* FileName: Test.cpp */
/* Author: LandyTan */
/* Version: 1.0 */
/* Date: 2018/12/09 */
/* Description: 算法题:求多个数的最大值最小值 */
/* FunctionList: InitArray */
/* OutputArray */
/* GetMax */
/* GetMin */
/* ArraySort */
/* */
/* History: */
/* <Author> <Time> <Version> <Description> */
/* LandyTan 2018/12/09 1.0 创建 */
/************************************************************/

#include <iostream>
#include <string>
#include <time.h>
using namespace std;

/************************************************************/
/* Function: InitArray */
/* Description: 创建并初始化数组 */
/* Parameter: _pArray 输出数组首地址 */
/* _cunArrayLength 数组长度 */
/* _cnMaxValue 数组最大值 */
/* Return: 无 */
/************************************************************/
void InitArray(int **_pArray, const unsigned int _cunArrayLength, const int _cnMaxValue = 1024)
{
if (!_pArray || _cunArrayLength <= 0 || _cnMaxValue <= 0)return;
int *pArray = new int[_cunArrayLength]{0};

/*TODO:初始化随机数*/
srand(time(NULL));

/*TODO:初始化数组*/
for (unsigned int unArrayIndex = 0; unArrayIndex < _cunArrayLength; unArrayIndex++)
*(pArray + unArrayIndex) = rand() % _cnMaxValue;

/*TODO:返回新建数组*/
*_pArray = pArray;
}

/************************************************************/
/* Function: OutputArray */
/* Description: 输出数组内容到显示器 */
/* Parameter: _pArray 数组首地址 */
/* _cunArrayLength 数组长度 */
/* Return: 无 */
/************************************************************/
void OutputArray(int *_pArray, const unsigned int _cunArrayLength)
{
if (!_pArray || _cunArrayLength <= 0)return;

/*TODO:遍历数组*/
for (unsigned int unArrayIndex = 0; unArrayIndex < _cunArrayLength; unArrayIndex++)
cout << *(_pArray + unArrayIndex) << "\t";
cout << endl;
}

/************************************************************/
/* Function: GetMax */
/* Description: 获取数组的最大值 */
/* Parameter: _pArray 数组首地址 */
/* _cunArrayLength 数组长度 */
/* Return: 最大值 */
/************************************************************/
int GetMax(int *_pArray, const unsigned int _cunArrayLength)
{
if (!_pArray || _cunArrayLength <= 1)return -1;

/*TODO:默认将数组首元素制为数组最大值*/
int nMax = *_pArray;

/*TODO:遍历数组, 与nMax比较, 谁大便将谁赋给nMax*/
for (unsigned int unArrayLength = 0; unArrayLength < _cunArrayLength; unArrayLength++)
nMax = _pArray[unArrayLength] > nMax ? _pArray[unArrayLength] : nMax;
return nMax;
}

/************************************************************/
/* Function: GetMin */
/* Description: 获取数组的最小值 */
/* Parameter: _pArray 数组首地址 */
/* _cunArrayLength 数组长度 */
/* Return: 最小值 */
/************************************************************/
int GetMin(int *_pArray, const unsigned int _cunArrayLength)
{
if (!_pArray || _cunArrayLength <= 0)return -1;

/*TODO:默认将数组首元素制为数组最小值*/
int nMin = *_pArray;

/*TODO:遍历数组, 与nMin比较, 谁小便将谁赋给nMin*/
for (unsigned int unArrayLength = 1; unArrayLength < _cunArrayLength; unArrayLength++)
nMin = _pArray[unArrayLength] < nMin ? _pArray[unArrayLength] : nMin;
return nMin;
}

/************************************************************/
/* Function: ArraySort */
/* Description: 数组排序 */
/* Parameter: _pArray 数组首地址 */
/* _cunArrayLength 数组长度 */
/* Return: 成功返回true;否则返回false */
/************************************************************/
bool ArraySort(int *_pArray, const unsigned int _cunArrayLength)
{
if (!_pArray || _cunArrayLength <= 0)return false;

/*TODO:遍历数组, 第一层遍历*/
for (unsigned int unArrayIndex = 0; unArrayIndex < _cunArrayLength; unArrayIndex++)
{
/*TODO:遍历数组, 第二层遍历*/
for (unsigned int unNextIndex = unArrayIndex + 1; unNextIndex < _cunArrayLength; unNextIndex++)
{
/*TODO:判断是否需要交换元素*/
if (*(_pArray + unArrayIndex) > *(_pArray + unNextIndex))
{
/*TODO:交换元素的值*/
int temp = *(_pArray + unArrayIndex);
*(_pArray + unArrayIndex) = *(_pArray + unNextIndex);
*(_pArray + unNextIndex) = temp;
}
}
}
return true;
}

/************************************************************/
/* Function: main */
/* Description: 测试 */
/* Parameter: */
/* Return: 0 */
/************************************************************/
int main()
{
int *pArray = NULL;
const unsigned int cunArrayLength = 200;
const int cnArrayMaxValue = 1024;
InitArray(&pArray, cunArrayLength, cnArrayMaxValue);
OutputArray(pArray, cunArrayLength);

[&]{/*TODO:方法1, 不改变数组*/
cout << "Min:" << GetMin(pArray, cunArrayLength) << endl;
cout << "Max:" << GetMax(pArray, cunArrayLength) << endl;
}();

cout << endl;

[&]{/*TODO:方法2, 改变数组*/
ArraySort(pArray, cunArrayLength);
cout << "Min:" << *(pArray) << endl;
cout << "Max:" << *(pArray + cunArrayLength - 1) << endl;
}();

delete[] pArray;
pArray = NULL;
system("pause");
return 0;
}
AlbertS 2018-12-07
  • 打赏
  • 举报
回复
引用 2 楼 nonamenotitle 的回复:

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstdlib>
int main()
{
int a,b,c,d;
scanf("%d%d%d%d",&a,&b,&c,&d);
printf("max=%d\n",max(max(a,b),max(c,d)));
printf("min=%d\n",min(min(a,b),min(c,d)));
return 0;
}

库函数有min和max的

还是对称的比较好看
  • 打赏
  • 举报
回复
用宏即可,不用那么复杂:
#define MAX(A, B) (A) > (B) ? (A) : (B)
#define MAX3(A, B, C) MAX(MAX(A, B), C)
#define MAX4(A, B, C, D) MAX(MAX(MAX(A, B), C), D)

#define MIN(A, B) (A) < (B) ? (A) : (B)
#define MIN3(A, B, C) MIN(MIN(A, B), C)
#define MIN4(A, B, C, D) MIN(MIN(MIN(A, B), C), D)
qq_37834095 2018-12-07
  • 打赏
  • 举报
回复
10个数 也可以这样吗?
qq_31073161 2017-04-03
  • 打赏
  • 举报
回复
#include<stdio.h> int main() { int max(int,int); int min(int,int); int a,b,c,d; scanf("%d%d%d%d",&a,&b,&c,&d); printf("max=%d\n",max(max(a,b),max(c,d))); printf("min=%d\n",min(min(a,b),min(c,d))); return 0; } //以下是调用的函数 int max(int x, int y) { if(x>y) return (x); else return (y); } int min(int x, int y) { if(x<y) return (x); else return (y); }
贰叁rom 2017-04-02
  • 打赏
  • 举报
回复
谢谢你们啦!
nonamenotitle 2017-03-30
  • 打赏
  • 举报
回复
引用 2 楼 DareXK 的回复:

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstdlib>
int main()
{
int a,b,c,d;
scanf("%d%d%d%d",&a,&b,&c,&d);
printf("max=%d\n",max(max(a,b),max(c,d)));
printf("min=%d\n",min(min(a,b),min(c,d)));
return 0;
}
库函数有min和max的
up主 呸 版主我这个掉了一句话抱歉

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstdlib>
using namespace std;
int main()
{
int a,b,c,d;
scanf("%d%d%d%d",&a,&b,&c,&d);
printf("max=%d\n",max(max(a,b),max(c,d)));
printf("min=%d\n",min(min(a,b),min(c,d)));
return 0;
}
nonamenotitle 2017-03-30
  • 打赏
  • 举报
回复
引用 4 楼 idzeta 的回复:
[quote=引用 2 楼 DareXK 的回复:]

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstdlib>
int main()
{
int a,b,c,d;
scanf("%d%d%d%d",&a,&b,&c,&d);
printf("max=%d\n",max(max(a,b),max(c,d)));
printf("min=%d\n",min(min(a,b),min(c,d)));
return 0;
}
库函数有min和max的
C++11:
std::max({a, b, c, d})
std::min({a, b, c, d})
[/quote]谢提醒
idzeta 2017-03-30
  • 打赏
  • 举报
回复
引用 2 楼 DareXK 的回复:

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstdlib>
int main()
{
int a,b,c,d;
scanf("%d%d%d%d",&a,&b,&c,&d);
printf("max=%d\n",max(max(a,b),max(c,d)));
printf("min=%d\n",min(min(a,b),min(c,d)));
return 0;
}
库函数有min和max的
C++11:
std::max({a, b, c, d})
std::min({a, b, c, d})
Meliodasi 2017-03-30
  • 打赏
  • 举报
回复
//C++语言写一个求四个数的最大值最小值,在主函数中怎么写呀 #include <stdio.h> main() { int a,b,c,d,max,min; scanf("%d%d%d%d",&a,&b,&c,&d); if (a > b) { max = a; min = b; } else { max = b; min =a; } if (max < c) { max = c; } else if (min > c) { min =c; } if (max < d) { max = d; } else if (min > d) { min = d; } printf("max=%d min=%d",max,min); return 0; }
nonamenotitle 2017-03-30
  • 打赏
  • 举报
回复

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstdlib>
int main()
{
int a,b,c,d;
scanf("%d%d%d%d",&a,&b,&c,&d);
printf("max=%d\n",max(max(a,b),max(c,d)));
printf("min=%d\n",min(min(a,b),min(c,d)));
return 0;
}
库函数有min和max的
bksnet 2017-03-30
  • 打赏
  • 举报
回复

if (a > b)
{
max = a;
min = b;
}
else
{
max = b;
min =a;
}
if (max < c)
max = c;
else if (min > c)
min =c;
if (max < d)
max = d;
else if (min > d)
min = d;

64,670

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧