一维数组最值问题(最值问题)

【例题1】

从键盘读入n(1<=n<=100)个正整数,输出最大值。

【算法分析】
(1)假设一个最大值maxx=0;

(2)maxx依次跟数组中的元素进行比较;

(3)如果该数组元素大于maxx,则将该数组元素值赋值给maxx;

(4)maxx即为该数组中的最大值。

【参考代码】
#include<bits/stdc++.h>

using namespace std;

int n,a[105];

int maxx=0;//maxx初始值要比任一数组元素的值小

int main()

{

    cin>>n; //读入数组元素个数

    for(int i=1;i<=n;i++) //数组赋值

        cin>>a[i];

    for(int i=1;i<=n;i++)  //数组元素依序跟maxx比较

        if(a[i]>maxx) maxx=a[i];

    cout<<maxx; //将最大值输出

    return 0;

}

从键盘读入n(1<=n<=100)个互不相同的正整数,问第几个数是最大值。


【算法分析】
(1)假设一个最大值maxx=0.并定义一个变量pos记录最大值下标;

(2)maxx依次跟数组中的元素进行比较;

(3)如果该数组元素大于maxx,则将该数组元素值赋值给maxx,同时将该元素的下标值赋值给pos;

(4)pos即为该数组中的最大值的下标。

【参考代码】
#include<bits/stdc++.h>

using namespace std;

int n,a[105];

int maxx=0,pos;//maxx初始值要比任一数组元素的值小

int main()

{

    cin>>n; //读入数组元素个数

    for(int i=1;i<=n;i++) //数组赋值

        cin>>a[i];

    for(int i=1;i<=n;i++)  //数组元素依序跟maxx比较

        if(a[i]>maxx) maxx=a[i],pos=i; //记录最大值跟最大值的下标

    cout<<pos; //将最大值下标输出

    return 0;

}

可以使用以下方法来定义一个函数来计算二维数组最值: ```c #include <stdio.h> int findMaxValue(int arr\[\]\[3\], int rows, int cols) { int max = arr\[0\]\[0\]; int index_i = 0; int index_j = 0; for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { if (arr\[i\]\[j\] > max) { max = arr\[i\]\[j\]; index_i = i; index_j = j; } } } printf("二维数组最大值为:%d\n", max); printf("下标i=%d, j=%d\n", index_i, index_j); return max; } int main() { int arr\[2\]\[3\] = {{100, 757, 36}, {121, 899, 989}}; int rows = sizeof(arr) / sizeof(arr\[0\]); int cols = sizeof(arr\[0\]) / sizeof(arr\[0\]\[0\]); findMaxValue(arr, rows, cols); return 0; } ``` 这个函数`findMaxValue`接受一个二维数组、行数和列数作为参数。它使用嵌套的循环遍历整个数组,找到最大值,并记录其下标。然后,它打印出最大值和对应的下标。在`main`函数,我们定义了一个二维数组`arr`,并计算出行数和列数,然后调用`findMaxValue`函数来计算最大值。 请注意,这个函数假设二维数组的行数和列数是已知的,并且数组的大小是固定的。如果你的数组大小不是固定的,你可以将行数和列数作为额外的参数传递给函数。 #### 引用[.reference_title] - *1* *2* [C语言函数体 计算一维数组最值和下标](https://blog.csdn.net/Aiden51/article/details/115269462)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [C语言:二维数组最大值](https://blog.csdn.net/weixin_63987141/article/details/129171761)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值