标题:编写程序求含有N个元素一维数组的最大值,最小值以及它们的下标。要求数组元 ...
只看楼主
一只小萌新
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2021-12-16
结帖率:75%
已结贴  问题点数:10 回复次数:4 
编写程序求含有N个元素一维数组的最大值,最小值以及它们的下标。要求数组元素的输入,求最大值最小值及它们的下标通过函数实现,结果在主函数实现,只能用stdio.h
搜索更多相关主题的帖子: 最小值 数组 下标 函数 元素 
2021-12-28 15:09
diycai
Rank: 8Rank: 8
等 级:贵宾
威 望:19
帖 子:147
专家分:895
注 册:2021-5-18
得分:10 
程序代码:
#include <stdio.h>
#define N    10
int array[N];
void getN()
{
    int i;
    for (i=0; i<N; i++)
    {
        scanf("%d", array+i);
    }
}
int getMax(int *index)
{
    int i, ret;
    ret = array[0];
    *index = 0;
    for (i=1; i<N; i++)
    {
        if (ret < array[i])
        {
            ret = array[i];
            *index = i;
        }
    }
    return ret;
}
int getMin(int *index)
{
    int i, ret;
    ret = array[0];
    *index = 0;
    for (i=1; i<N; i++)
    {
        if (ret > array[i])
        {
            ret = array[i];
            *index = i;
        }
    }
    return ret;
}
int main()
{
    int index;
    getN();//有多个最大或最小值仅输出下标最小的那个
    printf("最大下标为%d,值为%d\n", index, getMax(&index));
    printf("最小下标为%d,值为%d\n", index, getMin(&index));
    return 0;
}
2021-12-28 16:04
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
得分:0 
回复 2楼 diycai
printf("最大下标为%d,值为%d\n", index, getMax(&index));
这个做法会导致未定义行为
结果没意义
备注就算符合预期也没意义

https://zh.
2021-12-28 18:02
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
printf("最大下标为%d,值为%d\n", index, getMax(&index));
这个做法会导致未定义行为
结果没意义
备注就算符合预期也没意义

我来解释一下,
首先,C/C++标准并没有规定参数入栈顺序,所以并不能确保先评估 getMax(&index),再评估 index。
最重要的是,参数入栈顺序 与 参数评估顺序 之间毫无关系,一丝丝的相关性都没有。
举个例子,fun( fun1(), fun2(), fun3() ) 即便ABI能确保参数入栈顺序是从右向左,fun1(), fun2(), fun3() 的调用顺序依然是不确定的,如果它们之间有调用顺序的依赖,那么其行为结果未定义。
收到的鲜花
  • lin51616782021-12-28 21:40 送鲜花  5朵  
2021-12-28 19:41
一只小萌新
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2021-12-16
得分:0 
回复 3楼 lin5161678
谢谢大佬了
2021-12-28 21:42



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-508021-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.233793 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved