比较相邻两个元素求最大值

任务描述
本关任务:比较数组相邻两个元素求最大值。

相关知识
比较相邻的元素。如果第一个比第二个大,就交换他们两个,对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对,最后的元素应该会是最大的数。

如果有长度为 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 100

int 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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小狗碎碎念

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值