您的位置:首页 > 大数据 > 人工智能

nankai100_1

2015-11-25 09:47 423 查看
/// @file exam_x_x.cpp
/// @brief 
/**
1: 第1题 m个人的成绩存放在score数组中,请编写函数fun,
它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。 
*/

#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <crtdbg.h>
#include <conio.h>

int fun(int score[], int m, int below[]);
void print_int_array(char* pcTip, int iAry[], int iSizeAry);

int main(int argc, char *argv[ ], char *envp[ ])
{
    int iLowScoreCnt = 0;
    int score[] = {10, 20, 30, 40, 50, 60, 70, 80, 90};
    int below[9] = {0};

    print_int_array("score[] = ", score, sizeof(score) / sizeof(score[0]));
    iLowScoreCnt = fun(score, sizeof(score) / sizeof(score[0]), below);
    printf("iLowScoreCnt = %d\n", iLowScoreCnt);
    print_int_array("below[] = ", score, iLowScoreCnt);

    /** run result
    score[] =
    
    10 20 30 40 50 60 70 80
    90
    iLowScoreCnt = 4
    below[] =
      
    10 20 30 40
    */

    printf("END, press any key to quit\n");
    getchar();
    
    return 0;
}

int fun(int score[], int m, int below[])
{
    int i = 0;
    int iScoreAll = 0;
    int iScoreAverage = 0;
    int iBelowAverageCnt = 0;

    /// 算平均分
    for (i = 0; i < m; i++)
    {
        iScoreAll += score[i];
    }

    iScoreAverage = (int)(1.0f * iScoreAll / m);

    /// 将低于平均分的成绩放入below
    for (i = 0; i < m; i++)
    {
        if (score[i] < iScoreAverage)
        {
            iBelowAverageCnt++;
            below[i] = score[i];
        }
    }

    return iBelowAverageCnt;
}

void print_int_array(char* pcTip, int iAry[], int iSizeAry)
{
    int i = 0;
    int iPos = 0;

    if (NULL != pcTip)
    {
        printf("%s\n", pcTip);
    }

    for (i = 0; i < iSizeAry; i++)
    {
        if (0 == iPos++ % 8)
        {
            printf("\n");
        }

        printf("%d ", iAry[i]);
    }

    printf("\n");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: