- 任务描述
- 相关知识
- 编程要求
- 编程要求
- 测试说明
任务描述
本关任务:比较数组相邻两个元素求最大值 。
相关知识
比较相邻的元素。如果第一个比第二个大,就交换他们两个,对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对,最后的元素应该会是最大的数。
如果有长度为3的数组a,三个数组元素a[0]
,a[1]
,a[2]
,编写程序求这3
个数组元素中的最大者。 解题思路: 1)如果 a[0]>a[1]
,a[0]
和a[1]
交换,a[1]
是a[0]
、a[1]
中的大者。 2)如果 a[1]>a[2]
,a[1]
和a[2]
交换,a[2]
是三者中最大者。
用if
语句表示如下:
if(a[0]>a[1])
{
t=a[0]; a[0]=a[1]; a[1]=t; //a[0]和a[1]交换
}
if(a[1]>a[2])
{
t=a[1]; a[1]=a[2]; a[2]=t; //a[1]和a[2]交换
}
编程要求
现在有长度为n
个整型数组a
,用交换法求数组中的最大值的解题思路如下: 第1
步:如果 a[0]>a[1]
,a[0]
和a[1]
交换,a[1]
是a[0]
、a[1]
中的大者。 第2
步:如果 a[1]>a[2]
,a[1]
和a[2]
交换,a[2]
是前三个数组元素中最大者。 …… 第n-1
步:如果 a[n-2]>a[n-1]
,a[n-2]
和a[n-1]
交换,a[n-1]
是n
个数组元素中最大者。
编程要求
根据提示,在右侧编辑器 Begin-End 区间补充代码,用循环写出求最大值语句。
测试说明
平台会对你编写的代码进行测试:
测试输入: 10
39
1
4
32
91
57
6
33
2
88
输入说明: 第一行为
n
,表示n
个整数。 第二行为n
个整数。
预期输出: 1
4
32
39
57
6
33
2
88
91
输出说明: 最后一个元素应该是最大值文章来源:https://www.toymoban.com/news/detail-454671.html
开始你的任务吧,祝你成功!文章来源地址https://www.toymoban.com/news/detail-454671.html
#include <stdio.h>
#include<stdlib.h>
#define N 100
int main ()
{
/********** Begin **********/
int a[N],n,i,j,t=0,flag;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d ",&a[i]);
}
for(i=0;i<n-1;i++)
{
flag=0;
for(j=0;j<n-i-1;j++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
flag=1;
}
else if(a[i]<a[i+1])
{
a[i]=a[i];
a[i+1]=a[i+1];
}
}
if(flag==1)
{
for(j=0;j<n;j++)
printf("%d ",a[j]);
}
if(flag==0)
{
for(j=0;j<n-1;j++)
printf("%d ",a[j-1]);
printf("%d",a[j+1]);
}
/********** End **********/
return 0;
}
到了这里,关于第1关:比较相邻两个元素求最大值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!