【C++学习笔记】一、数组寻找最大值最小值

1 介绍说明

寻找数组中最大值和最小值的方法很多,无非是各种版本比较大小,特征优化处理等。
在这里用的是最基础的遍历,记录最大最小值,打印输出最大最小值

2 生成目标数组

1 固定目标数组

首先就是目标数组,`

int nums[]{ 8, 4, 2, 1, 22, 144, 12 };				//C++11版本后数组可以直接省略 赋值 =
//int nums[] = { 8, 4, 2, 1, 22, 144, 12 };				//数组

2 随机int数值

你也可以自己随机生成
方法如下:
先包含

#include <ctime>

在程序中添加

	srand(time(NULL));							//时间种子					 	
		for (int i = 0; i < 10; i++)
	{
		arr1[i]= rand() % 4 + 1;				//   数值范围(1-4)
		//arr1[i]= rand() % 4 ;					//   数值范围(0-3)	
	}

srand函数是随机数发生器的初始化函数。

time 返回的小数值为 0(零)到 0.99999999 之间的数值,
代表从 0:00:00 (12:00:00 AM) 到 23:59:59 (11:59:59 P.M.) 之间的时间。

3 遍历查询

直观点直接看代码如下:

for(int  i = 0; i < numsLen - 1; i++)
		{
			if(nums[i] > max)
			{
					max = nums[i];		//记录最大值
					maxIndex = i ;		//记录最大值的下标
			}
			if(nums[i] < min)
			{
					min = nums[i];		//记录最小值
					minIndex = i;       //记录最小值的下标
			}
		}

4 程序源码

/*
创建者	:	XTT
功能	:	Demon测试数组
			1: 求和,求出最大值和最小值
			2: 找到数组中奇数个数和偶数个数
			3:查找输入的数字在数组中的下标则下标为-1
时间	:	2019/12/27
*/
#include   < iostream>

using namespace std;

int main()
{
		int nums[]{ 8, 4, 2, 1, 22, 144, 12 };				//数组
		int max = nums[0];									//最大值
		int min = nums[0];									//最小值
		int maxIndex = 0;									//最大值的下标
		int minIndex = 0;									//最小值的下标
		//int sum = 0;										//求和
		int jCout = 0;										//奇数个数
		int oCout = 0;										//偶数个数
		int searchNum;										//用户查找的数字
		int searchIndex = 9;								//用户查找数字的下标
		int numsLen = sizeof(nums)/sizeof(int);				//计算数组长度
		/*---------------------------------------------------
		//自己demon的求和,可以不用看				
		for(int i = 0; i < numsLen; i++)
		{
			cout << nums[i] << "\t" ;
			sum+=nums[i];
		}
			cout << endl;
		cout << "数列的和为:" << sum << "\t平均值为:" << sum /numsLen << endl; 
		//
		---------------------------------------------------*/
		for(int  i = 0; i < numsLen - 1; i++)
		{
			if(nums[i] > max)
			{
					max = nums[i];		//记录最大值
					maxIndex = i ;		//记录最大值的下标
			}
			if(nums[i] < min)
			{
					min = nums[i];		//记录最小值
					minIndex = i;       //记录最小值的下标
			}
			if(nums[i] % 2 == 1)
			{
				jCout ++;	 			//记录奇数
			}
		}
		
		oCout = numsLen - jCout;
		cout << "请输入查找的数字" << endl;
		cin >> searchNum;
		for (int i = 0; i < numsLen - 1; i++)
		{
			if (nums[i] == searchNum)
			{
				searchIndex = i;
				cout << "查找的数字在" << searchIndex << endl;
				break;  
			}
		}
		cout << "最大值是" << max << "\t" <<"下标是"<< maxIndex << endl ;
		cout << "最小值是" << min << "\t" <<"下标是"<< minIndex << endl ;
		cout << "奇数个数是" << jCout << endl ;	
		cout << "偶数个数是" << oCout << endl ;		
		cout << "输入查找的数字" << searchNum << endl ;
		if (searchIndex == 9)
		{
			cout << "指定数组内无查找的数据" << endl;
		}
		return 0;
}

5运行结果

在这里插入图片描述

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高启强不卖鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值