64,670
社区成员
发帖
与我相关
我的任务
分享
/************************************************************/
/* 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;
}
#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;
}
std::max({a, b, c, d})
std::min({a, b, c, d})
[/quote]谢提醒std::max({a, b, c, d})
std::min({a, b, c, d})
#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的
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;