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)这样的 ...
随机推荐
- dockfile杂项
工程源代码+工程的配置文件 在外面配置好 1 工程的配置文件,是工程的一部分 2 要贯彻内聚原则, 用1句挂载整个工程. 在外面集中配置好在一个路径下,一起挂进去或者COPY进去. 防止先COPY了体 ...
- English trip -- VC(情景课)10 D Reading 阅读练习
Read 阅读 From: Lupe To:Miriam Hi Miriam, I'm not working today.It's my day off. Are you busy?Come an ...
- php--------返回404状态
php header()返回404状态代码的两种方式 //方式一 header('HTTP/1.1 404 Not Found');exit('404') //方式二 header("sta ...
- 『Numpy』高级函数_np.nditer()&ufunc运算
1.np.nditer():numpy迭代器 默认情况下,nditer将视待迭代遍历的数组为只读对象(read-only),为了在遍历数组的同时,实现对数组元素值得修改,必须指定op_flags=[' ...
- C++面试问题详解
1.定义一个全局变量放在.cpp文件还是.h文件,原因是什么 在cpp文件中定义变量,h文件用来声明变量的作用域,使用extern声明的变量可以在本编译单元或其他编译单元中使用. 举例如下: a.h文 ...
- git 系统找不到 指定的路径
git 系统找不到 指定的路径 %HOMEDRIVE%%HOMEPATH% Home 问题解决
- vs2015 系统找不到指定的文件(异常来自HRESULT:0x80070002)问题的解决方法
vs2015 创建mvc项目时,弹出错误信息内容(系统找不到指定的文件(异常来自HRESULT:0x80070002)) 弹出窗体如下图所示: 导致整个原因是:未安装NuGet包 解决方法: 1)打开 ...
- git本地及远程分支回退
1. git本地版本回退 Git reset --hard commit_id(可用 git log –oneline 查看) 2. git远程版本回退 git push origin HEAD -- ...
- 快速切题 sgu 111.Very simple problem 大数 开平方 难度:0 非java:1
111.Very simple problem time limit per test: 0.5 sec. memory limit per test: 4096 KB You are given n ...
- tcp/ip协议之小解释
[转载] http://www.ruanyifeng.com/blog/2009/03/tcp-ip_model.html