输入n个整数,输出其中最大的k个

本文介绍了一个简单的PHP函数,用于从给定的整数数组中找出最大的K个数,并返回这些数值。通过遍历数组并持续更新结果数组来实现。

题目为:输入n个整数,输出其中最大的k个

例如输入1,2,3,4,5,6,7,8这8个数字,则最大的是6,7,8

代码:

function test5($arr,$k) {
    $new_arr = [];
    $arr_length = count($arr);
    for ($i=0; $i < $arr_length; $i++) { 
        if( count($new_arr) >= $k || count($new_arr) >= $arr_length) {
            break;
        }
        $max = max($arr);
        $max_index = array_search(max($arr),$arr);
        array_unshift($new_arr, $max);
        unset($arr[$max_index]);
    }
    return $new_arr;
}
$arr=[1,2,3,4,5,6,7,8];
$k = 3;
print_r(test5($arr,$k));

这个是比较简单的题目

以下为几种使用 C 语言实现输入三个整数输出最大值的方法: ### 方法一:使用指针实现 ```c #include <stdio.h> int getmax(int *p, int n) { int i, max_p; max_p = p[0]; for (i = 1; i < n; i++) { if (p[i] > max_p) max_p = p[i]; } return max_p; } int main() { int *p; int a[3]; int k; p = a; printf("please enter 3 int number:"); scanf("%d%d%d", &p[0], &p[1], &p[2]); printf("the max num=%d\n", getmax(p, 3)); return 0; } ``` 此代码借助指针来操作数组,通过自定义的 `getmax` 函数找出数组里的最大值。它先把数组首元素设为最大值,接着遍历数组,若发现比当前最大值大的元素,就更新最大值,最终返回最大值[^1]。 ### 方法二:使用 if 语句嵌套结构 ```c #include <stdio.h> int main() { int a, b, c, max; printf("请输入三个整数: \n"); scanf("%d,%d,%d", &a, &b, &c); if (a > b) { max = a; } else { max = b; } if (max < c) max = c; printf("max=%d", max); return 0; } ``` 该代码先比较前两个数,把较大的数赋给 `max`,再将 `max` 和第三个数比较,若第三个数更大,则更新 `max` 的值,最后输出最大值[^2]。 ### 方法三:使用三目运算符 ```c #include <stdio.h> int main() { int a, b, c, max; printf("请输入三个整数:\n"); scanf("%d %d %d", &a, &b, &c); max = (a > b)? ((a > c)? a : c) : ((b > c)? b : c); printf("最大值是:%d\n", max); return 0; } ``` 此代码利用三目运算符嵌套比较三个数的大小,先比较 `a` 和 `b`,取较大值再和 `c` 比较,从而得出最大值并输出
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值