[华为机试练习题]16.数字统计

题目

题目标题:

对输入的整型数组,输出数组元素中的最大值、最大值的个数、最小值和最小值的个数
详细描述:

接口说明
原型:
voidOutputMaxAndMin(int * pInputInteger,intInputNum,int * pMaxValue,int * pMaxNum,int * pMinValue,int * pMinNum);
输入参数:
    Int * pInputInteger:整型数组指针
Int   InputNum:数组元素个数
输出参数(指针指向的内存区域保证有效):
    int* pMaxValue:数组中最大值
     int* pMaxNum:数组中最大值的个数
     int* pMinValue:数组中最小值
int* pMinNum:数组中最小值的个数
返回值:
    void
涉及知识点:

C语言基础:数组、比较
性能要求:

无
圈复杂度要求:

这个不由出题者提供,由后续判题系统全局配置
如:函数圈复杂度低于10,类公函数小于20等
代码工程和用例:
C/C++:
VS2005代码工程
嵌入工程的CPPUNIT用例

知识点:     
工程环境请使用VS2005

题目来源:    软件训练营 
维护人:     d00191780 
练习阶段:    初级 

代码

/*---------------------------------------
*   日期:2015-06-30
*   作者:SJF0115
*   题目:数字统计
*   来源:华为上机
-----------------------------------------*/
#include <stdio.h>

/*
功能:对输入的整型数组,输出数组元素中的最大值、最大值的个数、最小值和最小值的个数

输入:int * pInputInteger:整型数组指针
     int * InputNum:数组元素个数

输出:int * pMaxValue:数组中最大值
     int * pMaxNum:数组中最大值的个数
     int * pMinValue:数组中最小值
     int * pMinNum:数组中最小值的个数

返回:void
*/
void OutputMaxAndMin(int * pInputInteger, int InputNum, int * pMaxValue, int * pMaxNum, int * pMinValue, int * pMinNum)
{
    if(pInputInteger == NULL || InputNum <= 0){
        return;
    }//if
    *pMaxValue = pInputInteger[0];
    *pMinValue = pInputInteger[0];
    *pMaxNum = 1;
    *pMinNum = 1;
    for(int i = 1;i < InputNum;++i){
        // 更新最大值
        if(pInputInteger[i] > *pMaxValue){
            *pMaxValue = pInputInteger[i];
            *pMaxNum = 1;
        }//if
        else if(pInputInteger[i] == *pMaxValue){
            ++(*pMaxNum);
        }//else
        // 更新最小值
        if(pInputInteger[i] < *pMinValue){
            *pMinValue = pInputInteger[i];
            *pMinNum = 1;
        }//if
        else if(pInputInteger[i] == *pMinValue){
            ++(*pMinNum);
        }//else
    }//for
    return;
}
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

@SmartSi

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

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

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

打赏作者

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

抵扣说明:

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

余额充值