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)这样的 ...
随机推荐
- marquee 跑马灯公告
1.原始 marquee 2.自定义 marquee .tops { color: #fff; height: 23px; margin: 0 0 0 20px; min-height: 23px; ...
- R语言plot函数参数合集
最近用R语言画图,plot 函数是用的最多的函数,而他的参数非常繁多,由此总结一下,以供后续方便查阅. plot(x, y = NULL, type = "p", xlim = N ...
- Java数组的定义和使用
如果希望保存一组有相同类型的数据,可以使用数组. 数组的定义和内存分配 Java 中定义数组的语法有两种: type arrayName[]; type[] arrayName; type 为Java ...
- 3-13《元编程》第5章Class Definitions 3-14(5-4Singleton Classes,2小时)3-15(3小时✅)
类宏 环绕别名 singleton class Class就是增强的模块,类定义也就是模块定义. 5.1 Class Definitions Demystified 5.11 Inside Class ...
- 29 Socketserver和 ftp
一.Socketserver #服务端 import socketserver class KnightServer(socketserver.BaseRequestHandler): def han ...
- 小程序animation动画效果综合应用案例(交流QQ群:604788754)
如果案例有问题,可到QQ群找到今日相关压缩文件下载测试. WXML: <view class="cebian"> <view animation="{{ ...
- POJ 3259 Bellman_Ford算法
额.关键是读题.反正我是看了解题报告才知道意思的.给你n个点.m条路.双向的.耗费时间.w个虫洞.单向的.时间为负值.问你是否可以从某一点返回看到之前的自己.即为判断是不是有负环.用Bellman_F ...
- Winform中用comboBox来选择显示Dataset中表格数据
这是一次偷懒的尝试,因为每次都必须打开代码,调试才能看见数据,发现问题.也是借鉴了调试中查看dataset数据的模式,查看不同表格.经历一番研究,总算实现了想要的效果了,故作此一笔记.与人共享. 界面 ...
- James Whittaker:经营成功的测试职业生涯
转注:这篇文章出自 James A. Whittaker,Google的工程总监,负责Google部分产品的测试,包括Chrome.地图.GoogleWebApp.在加盟Google之前,James在 ...
- 16 extern用法、常量字符串的应用
extern声明多文件共享变量的方法总结一下: 1).在一个源文件中定义,在其他需要使用的源文件中用extern声明.(仅一处定义,多处extern) 2).在一个源文件中定义,在其对应的头文件中ex ...