专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-963-0016      微信咨询  |  联系我们

C++求数组中的最大值和最小值(带源码)

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/17 13:46:11       共计:3617 浏览
用于查找数组中最高值(其实就是最大值,但是为对应源代码中的 highest,故仍称为最高值)和最低值(其实就是最小值,但是为对应源代码中的 lowest,故仍称为最低值)的算法非常相似。首先,来看一下在数组中寻找最高值的代码。假设在程序中出现了以下语句。

const int SIZE = 10;
int numbers[SIZE] = {15, 6, 3, 11, 22, 4, 0, 1, 9, 12};

查找数组中最高值的代码如下所示:
int count;
int highest;
highest = numbers[0];

for (count = 1; count < SIZE; count++)
{
    if (numbers[count] > highest)
        highest = numbers[count];
}
首先,该语句将第一个数组元素中的值复制到名为 highest 的变量中。然后,循环将从下标 1 开始的所有其余数组元素与存储在 highest 中的值进行比较。每次当它发现数组元素中的值大于 highest 中的值时,都会将其复制到 highest。循环完成后,highest 将包含数组中最的值。

以下代码将找到数组中的最低值。对比之后可以发现,它与查找最高值的代码几乎相同。
int count;
int lowest;
lowest = numbers[0];
for (count = 1; count < SIZE:count++)
{
    if (numbers[count] < lowest);
        lowest = numbers[count];
}
当循环完成后,lowest 将包含数组中的最低值。

下面的程序将创建月度销售报告,它演示了查找数组中总和、平均值、最高值和最低值的算法。它将算法结合起来,在一个循环中即可找到最高值和最低值。用于填充数组的销售数据是从 sales.dat 文件中读取的,该文件包含以下值:

62458 81598 98745 53460 35678 86322
89920 78960 124569 43550 45679 98750

实现代码为:
#include <iostream>
#include <fstream> // Needed to use files
#include <iomanip>
using namespace std;

int main()
{
    const int NUM_OFFICES = 12;
    ifstream dataIn;
    int office; // Loop counter
    double sales[NUM_OFFICES], // Array to hold the sales data
        totalSales = 0.0, // Accumulator initialized to zero
        averageSales,
        highestSales,
        lowestSales;

    // Open the data file
    dataIn.open("sales.dat");
    if (!dataIn)
        cout << "Error opening data file.\n";
    else
    {
        //Fill the array with data from the file
        for (office = 0; office < NUM_OFFICES; office++)
            dataIn >> sales[office];
        dataIn.close();
       
        // Sum all the array elements
        for (office = 0; office < NUM_OFFICES; office++)
            totalSales += sales[office];
        // Calculate average sales
        averageSales = totalSales / NUM_OFFICES;
       
        //Find highest and lowest sales amounts
        highestSales = lowestSales = sales[0];
        for (office = 1; office < NUM_OFFICES; office++)
        {
            if (sales[office] > highestSales)
                highestSales = sales[office];
            else if (sales[office] < lowestSales)
                lowestSales = sales[office];
        }
        // Display results
        cout << fixed << showpoint << setprecision(2);
        cout << "Total sales $" << setw (9) << totalSales << endl;
        cout << "Average sales $" << setw(9) << averageSales << endl;
        cout << "Highest sales $" << setw(9) << highestSales << endl;
        cout << "Lowest sales $" << setw (9) << lowestSales << endl;
    }
    return 0;
}
程序输出结果为:

Total sales $899689.00
Average sales $ 74974.08
Highest sales $124569.00
Lowest sales $ 35678.00

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:JSP注释(多种注释详解) | ·下一条:C++比较两个数组是否相等(详解版)

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有