HPU 1127:【C语言程序设计】[7.4.2]最大元素(排序)
【C语言程序设计】[7.4.2]最大元素
时间限制: 1 Sec 内存限制: 128 MB
提交: 386 解决: 139
题目描述
编一个程序,读入n个元素的实型数组,然后调用一个函数,递归地找出其中的最大元素,并指出它的位置。
输入
第一行是一个整数n(0<n<1000),代表元素的个数。
第二行是n个以一个空格分开的实数(保证无相等元素)。
输出
输出最大元素(保留三位小数)及它在数组中出现的位置。
样例输入
3
2.0 3.1 4.3
样例输出
4.300 2
好多人问这道题,看了一些同学的写法,虽然写法不怎么一样,但是感觉错的地方都是一样的(尴尬)
首先,这题用double会WA,要用float(不知道为什么,玄学问题)。
第一种方法:
用这种方法写的人最多,定义一个变量并附一个足够小的值maxx,然后循环,和数组里的每个元素比较,如果找到数组中较大的值,把这个值给maxx,然后记录下来这个值在数组中的位置,最后输出。
需要注意的是:如果给maxx的赋值是数组的第一个元素,那么循环要从第二个元素开始,这样可以避免第一个元素是最大值的情况。循环中不要加break之类的东西,最后输出的时候不要输出循环里的i(不知道为什么,好多人这样写),这样写的后果是不论输入什么,最后输出的第二个值都等于n
附上代码
#include<bits/stdc++.h>
const int maxn=1e5+10;
float a[maxn];
int main()
{
float maxx=INT_MIN;
int flag;
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%f",&a[i]);
if(maxx<a[i])
{
flag=i;
maxx=a[i];
}
}
// 这种写法也可以,原理是一样的
// for(int i=0;i<n;i++) scanf("%f",&a[i]);
// for(int i=0;i<n;i++)
// {
// if(a[i]>maxx)
// {
// flag=i;
// maxx=a[i];
// }
// }
printf("%.3f %d\n",maxx,flag);
return 0;
}
第二种:递归
直接上代码,自己理解吧,写递归经常迷
#include<bits/stdc++.h>
float a[10000];
float MAX(float a[],int n)
{
float maxx;
if(n==1)
return a[0];
else
{
maxx=MAX(a,n-1);
return ((maxx>a[n])?maxx:a[n]);
}
}
int main()
{
int n,flag;
scanf("%d",&n);
for(int i=0;i<n;i++) scanf("%f",&a[i]);
float Max=MAX(a,n);
for(int i=0;i<n;i++)
{
if(Max==a[i]) flag=i;
}
printf("%.3f %d\n",Max,flag);
return 0;
}
第三种:定义结构体,用sort排序(这个是C++里的东西,可以不看)
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+10;
struct wzy{
float x;
int flag;
}p[maxn];
bool cmp(wzy u,wzy v)
{
return u.x>v.x;
}
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%f",&p[i].x);
p[i].flag=i;
}
sort(p,p+n,cmp);
printf("%.3f %d\n",p[0].x,p[0].flag);
return 0;
}
方法不唯一,还有好多种写法,我就写了这三种,不论用什么方法只要能AC就可以了
排序很重要,想了解更多排序方法可以百度
HPU 1127:【C语言程序设计】[7.4.2]最大元素(排序)的更多相关文章
- C语言程序设计入门学习五步曲(转发)
笔者在从事教学的过程中,听到同学抱怨最多的一句话是:老师,上课我也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手.发生这种现象的原因有三个: 一.所谓的看懂听明白,只是很肤浅的 ...
- 160809208沈昊辰c语言程序设计实验选择结构设计
<C语言程序设计>实验报告 学 号 160809208 姓 名 沈昊辰 专业.班 计科16-2班 学 期 2016-2017 第1学期 指导教师 黄俊莲 吴喆 实验地点 C区二层机房 ...
- C语言程序设计第4堂作业
大家注意:本次作业稍有增加,由于放假期间大家空闲时间比较充足,将之前学习过程中遗留的问题必须在假期解决. 本次课学习主要内容: 分支结构中的二分支结构.多分支结构和else-if语句 掌握字符型数 ...
- 《VB语言程序设计(第3版)》总结
我之前因学习昆仑通态的组态软件MCGS,用并学习过VB,还买了一本书<VB语言程序设计(第3版)>.现在在某公司实习,最近接触老的项目,又要用到VB.我就又把那本书大体看了一遍,并对其进行 ...
- 160809209_李梦鑫_C语言程序设计实验3 循环结构程序设计
<C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学 期 2016-2017 第1学期 指导教师 黄俊莲 吉吉老师 实验地点 C05 ...
- 160809209_李梦鑫_C语言程序设计实验2+选择结构程序设计_进阶
<C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学 期 2016-2017 第1学期 指导教师 黄俊莲 吴喆 实验地点 C05 机 ...
- 中国大学MOOC-翁恺-C语言程序设计习题集
今年网易出了“中国大学MOOC”,于是选了浙大翁恺老师的“C语言程序设计”学习,近期打算把自己在该课程中的PAT习题解答做一个记录,等自己编程能力提高后再来看现在写的代码哪里还有写的不好,可以改进的地 ...
- 中国大学MOOC-翁恺-C语言程序设计习题集-解答汇总
中国大学MOOC-翁恺-C语言程序设计习题集 PAT 习题集 02-0. 整数四则运算(10) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standar ...
- C语言程序设计课程设计自查表格
课程设计自查表格 序号 项目 完成与否(完成打勾) 1 格式是否符合标准(缩进是否规范) 2 是否模块化设计(使用函数分解系统功能) 3 函数名否易懂(不得使用f1(int a1,int a2)这样的 ...
随机推荐
- android开发:Android 中自定义View的应用
大家好我们今天的教程是在Android 教程中自定义View 的学习,对于初学着来说,他们习惯了Android 传统的页面布局方式,如下代码: <?xml version="1.0&q ...
- threejs和3d各种效果的学习
写给即将开始threejs学习的自己,各种尝试,各种记忆.不要怕,灰色的年华终会过去. 一个技术学习的快慢,以及你的深刻程度,还有你的以后遇到这个东西的时候的反应速度,很大程度上,取决于你的博客的深刻 ...
- IIS中发布后出现Could not load file or assembly'System.Data.SQLite.dll' or one of its depedencies
[问题]在我本机的开发环境c#连接sqlite3没有问题,可是release版本移植到其他的机器就提示Could not load file or assembly'System.Data.SQLit ...
- 总是有个yumBackend.py阻止我用yum进行更新
[Another app is currently holding the yum lock; waiting for it to exit...] 上网查了,好像是说帮我安个桌面图标的进程. 估计是 ...
- English trip -- Phonics 6 元音字母 u + Unit 5 B课 review
Vowel u [ʌ] 闭音节 bunny cut bug mushroom lunch ar er ur or ir = R (读音类似儿) e.g. dollar 美元 collar n. ...
- LeetCode--108--将有序数组转化为二叉搜索树
问题描述: 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1. 示例: 给定有序数组: [-10 ...
- CentOS7.6 Install TensorFlow
1. install pip 1). yum -y install epel-release 2). yum install python-pip 3). pip install --upgra ...
- CSS3动画和JS动画的比较
前言 之前有被问到一个问题,css3动画和js动画性能谁更好,为什么.据我的经验,当然觉得css3动画性能更好,至于为什么一时还真答不上来,所以特意查了一下资料总结一波. JS动画 优点: js动画控 ...
- jsp jsp常用指令
jsp指令是为jsp引擎设计的,他们并不直接产生任何可见输出,而只是告诉引擎如何处理jsp页面中的其余部分. jsp中的指令 page指令 include指令 taglib指令 jsp指令的基本语法 ...
- cas HttpServletRequestWrapperFilter
HttpServletRequestWrapperFilter 作用其实很简单就是 在HttpServletRequest对象在包装一次,让其支持getUserPrincipal,getRemoteU ...