任务描述
本关任务:比较数组相邻两个元素求最大值。
相关知识
比较相邻的元素。如果第一个比第二个大,就交换他们两个,对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对,最后的元素应该会是最大的数。
如果有长度为 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]交换
}
#include <stdio.h>
#include <stdlib.h>
#define N 100int main ()
{ int n, i, t;int a[N]; // 声明一个长度为N的数组// 读取数组长度scanf("%d", &n);// 读取数组元素for(i = 0; i < n; i++) {scanf("%d", &a[i]);}// 进行一轮冒泡排序,确保最大值在数组的最后一个位置for(i = 0; i < n - 1; i++) {if(a[i] > a[i + 1]) {t = a[i];a[i] = a[i + 1];a[i + 1] = t;}}// 输出数组元素for(i = 0; i < n; i++) {printf("%d ", a[i]);}printf("\n");return 0;
}