优秀的编程知识分享平台

网站首页 > 技术文章 正文

c++编程入门题解:楼王(循环和打擂法的使用)

nanyue 2024-07-25 06:02:45 技术文章 17 ℃

题目描述

在一条直线上有n幢楼房,相邻的两幢楼房相隔1米,每幢的高度不尽相同,试求出最高的楼王与最矮的楼之间的高度差,以及这两幢楼房之间的距离。

输入

两行。
第一行:一个整数n
第二行:空格隔开的n个整数,表示直线上从左往右每幢楼房的高度。

输出

一行,两个整数,分别表示最高与最低楼房的高度差以及它们之间的距离。

样例输入

5
1 2 3 4 5

样例输出

4 4

参考程序

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n,a,maxn=INT_MIN,minn=INT_MAX,p1,p2;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
    	cin>>a;
    	if(a>maxn)//打擂法
    	{
    		maxn=a;//楼王的高度
    		p1=i;//楼王的位置
		}
		if(a<minn)
		{
			minn=a;//最矮楼高度
			p2=i;    //最矮楼位置
		}
	}
	cout<<maxn-minn<<" "<<abs(p1-p2);//距离取绝对值
	return 0;
}

程序运行结果

Tags:

最近发表
标签列表