• C++ · 找最大/最小值


    找最大最小值

    方法一:擂台思想

    这个思路很好理解,找最小值就设一个极大值(如:999999),此后,每输入一个数,就比较它是否比当前最小值小。如是,则它替代最小值;如否,则输入下一个数。(找最大值以此类推)

    管你听没听懂,上代码
    这种思路的写法如下:

    //exam1 找最小值
    #include 
    using namespace std;
    int n,minn=99999; //n是数字个数,minn表示当前最小值
    int main ()
    {
        cin>>n;
        for(int i=1;i<=n;i++){
            int a; 
            cin>>a; //输入
            if(a<minn) minn=a; //比较
        }
        cout<<minn;
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    运行结果:

    而找最大值的代码如下:

    //exam2 找最大值
    #include 
    using namespace std;
    int n,maxn=-99999; //n是数字个数,maxn表示当前最大值
    int main ()
    {
        cin>>n;
        for(int i=1;i<=n;i++){
            int a;
            cin>>a;
            if(a>maxn) maxn=a;
        }
        cout<<maxn;
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15


    上面的都是基础内容,咱们整点难一点的
    比如说,找到最小值的序号

    这个可要仔细想想了,我们可以额外设一个变量k,循环时,临时变量i1开始(这是个好习惯,建议养成),每有一次当前的数小于最小值,则k为当前i的值
    找最大值反过来就行

    代码实现:

    #include 
    using namespace std;
    
    int main ()
    {
    	int n,s=99999,k=1;//s作比较, n数字个数, k序号 
    	cin>>n;
    	for(int i=1;i<=n;i++){
    		int a;
    		cin>>a; //输入
    		if(a<=s){
    			s=a; //最小值
    			k=i; //序号
    		}	
    	}
    	cout<<k;
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    方法二:sort排序

    这个算是比较方便的方法了,sort函数的用法:
    sort(开始位置,结束位置,参数)

    其中,参数可以为less()greater(),还可以是其它自定义的函数

    C语言默认的排序顺序:从小到大

    从小到大排序用less(),从大到小用greater()

    cmp自定义排序函数:

    bool cmp(int a,int b){
    	return a>b; //从大到小
    	return a<b; //从小到大,也可以写成 return b>a;
    }
    
    • 1
    • 2
    • 3
    • 4

    更多示例可以参考我的另一篇文章:sort函数排序详解

    那么,找最小值的代码如下:

    #include 
    using namespace std;
    int a[1005],n;
    int main ()
    {
        cin>>n;
        for(int i=1;i<=n;i++){
            cin>>a[i];
        }
        sort(a,a+n); //sort(a,a+n,less());
        cout<<a[n];
        return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13


    sort函数不支持找序号

  • 相关阅读:
    JS 的 substr() 方法
    SylixOS BSP开发(八)
    javaweb JAVA JSP学生信息档案管理系统JSP学生管理系统JSP学生档案管理系统JSP学生信息管理系统
    知识库搭建最简单的方法:登录、创建、优化,就这三步!
    初始C++(一)---命名空间、输入输出、缺省参数
    软考系列(系统架构师)- 2012年系统架构师软考案例分析考点
    速通Redis基础(一):掌握Redis的字符串类型和命令
    axios 和 fetch
    Python_豆瓣电影&保存excel
    Vmware: network 相关
  • 原文地址:https://blog.csdn.net/weixin_45122104/article/details/126232260