c++一维数组和二维数组的使用

定义一个长度为10的双精度浮,点型数组,通过键盘进行赋值;将数组元素输出到屏蒜:然后输出该数组中元素的最大值、最小值,并计算输出数组元素的平均值。

该回答引用chatgpt:

#include <iostream>
#include <iomanip> // 用于格式化输出

using namespace std;

int main() {
    double arr[10]; // 定义一个长度为10的双精度浮点型数组

    // 通过键盘进行赋值
    cout << "请输入10个双精度浮点数,以空格分隔:" << endl;
    for (int i = 0; i < 10; i++) {
        cin >> arr[i];
    }

    // 将数组元素输出到屏幕
    cout << "数组元素为:" << endl;
    for (int i = 0; i < 10; i++) {
        cout << arr[i] << " ";
    }
    cout << endl;

    // 计算最大值、最小值和平均值
    double max_num = arr[0];
    double min_num = arr[0];
    double sum = arr[0];
    for (int i = 1; i < 10; i++) {
        if (arr[i] > max_num) {
            max_num = arr[i];
        }
        if (arr[i] < min_num) {
            min_num = arr[i];
        }
        sum += arr[i];
    }
    double average = sum / 10;

    // 输出最大值、最小值和平均值
    cout << "最大值为:" << fixed << setprecision(2) << max_num << endl;
    cout << "最小值为:" << fixed << setprecision(2) << min_num << endl;
    cout << "平均值为:" << fixed << setprecision(2) << average << endl;

    return 0;
}


输出结果如下:


请输入10个双精度浮点数,以空格分隔:
2.3 3.1 1.2 4.6 7.8 9.2 0.6 5.6 8.1 6.7
数组元素为:
2.3 3.1 1.2 4.6 7.8 9.2 0.6 5.6 8.1 6.7
最大值为:9.20
最小值为:0.60
平均值为:5.76

在输入过程中就进行求和,不需要重复循环

#include <stdio.h>
int main()
{
    double a[10],max,min,sum=0;
    int i;
    for(i=0;i<10;i++)
    {
        scanf("%lf",&a[i]);
        if(i==0 || max < a[i])
            max = a[i];
        if(i==0 || min > a[i])
            min = a[i];
        sum += a[i];
    }
    for(i=0;i<10;i++)
        printf("%lf ",a[i]);
    printf("\n最大值:%lf,最小值:%lf,平均值:%lf",max,min,sum/10);
}

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7418188
  • 你也可以参考下这篇文章:【华为机试题C++】:老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩
  • 除此之外, 这篇博客: 【一】 C++编程入门知识总结 | 内附完整的源代码示例(有版权问题,私聊删除)中的 5.3.1 二维数组定义方式 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 二维数组定义的四种方式:

    1. 数据类型 数组名[ 行数 ][ 列数 ];
    2. 数据类型 数组名[ 行数 ][ 列数 ] = { {数据1,数据2 } ,{数据3,数据4 } };
    3. 数据类型 数组名[ 行数 ][ 列数 ] = { 数据1,数据2,数据3,数据4};
    4. 数据类型 数组名[ ][ 列数 ] = { 数据1,数据2,数据3,数据4};

    建议:以上4种定义方式,利用第二种更加直观,提高代码的可读性

    示例:

    int main() {
    
    	//方式1  
    	//数组类型 数组名 [行数][列数]
    	int arr[2][3];
    	arr[0][0] = 1;
    	arr[0][1] = 2;
    	arr[0][2] = 3;
    	arr[1][0] = 4;
    	arr[1][1] = 5;
    	arr[1][2] = 6;
    
    	for (int i = 0; i < 2; i++)
    	{
    		for (int j = 0; j < 3; j++)
    		{
    			cout << arr[i][j] << " ";
    		}
    		cout << endl;
    	}
    
    	//方式2 
    	//数据类型 数组名[行数][列数] = { {数据1,数据2 } ,{数据3,数据4 } };
    	int arr2[2][3] =
    	{
    		{1,2,3},
    		{4,5,6}
    	};
    
    	//方式3
    	//数据类型 数组名[行数][列数] = { 数据1,数据2 ,数据3,数据4  };
    	int arr3[2][3] = { 1,2,3,4,5,6 }; 
    
    	//方式4 
    	//数据类型 数组名[][列数] = { 数据1,数据2 ,数据3,数据4  };
    	int arr4[][3] = { 1,2,3,4,5,6 };
    	
    	system("pause");
    
    	return 0;
    }
    

    总结:在定义二维数组时,如果初始化了数据,可以省略行数

  • 您还可以看一下 夏曹俊老师的C++ 设计模式原理与实战大全-架构师需备课程课程中的 策略模式的实用工程技术——支付交易系统帐户转帐、数据信令采集中的策略模式实现原理小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    定义一个长度为10的双精度浮点型一维数组和二维数组,并通过键盘输入赋值,示例代码如下:

    #include <iostream>
    using namespace std;
    
    int main() {
        // 定义长度为10的双精度浮点型一维数组并赋值
        double arr1[10];
        for (int i = 0; i < 10; i++) {
            cin >> arr1[i];
        }
    
        // 定义二维数组并赋值
        double arr2[3][4];
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 4; j++) {
                cin >> arr2[i][j];
            }
        }
    
        // 输出数组元素到屏幕
        for (int i = 0; i < 10; i++) {
            cout << arr1[i] << " ";
        }
        cout << endl;
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 4; j++) {
                cout << arr2[i][j] << " ";
            }
            cout << endl;
        }
    
        // 求出数组元素的最大值、最小值以及平均值
        // 对于一维数组
        double max1 = arr1[0], min1 = arr1[0], sum1 = 0;
        for (int i = 0; i < 10; i++) {
            if (arr1[i] > max1) {
                max1 = arr1[i];
            }
            if (arr1[i] < min1) {
                min1 = arr1[i];
            }
            sum1 += arr1[i];
        }
        double avg1 = sum1 / 10;
        cout << "一维数组最大值为:" << max1 << endl;
        cout << "一维数组最小值为:" << min1 << endl;
        cout << "一维数组平均值为:" << avg1 << endl;
    
        // 对于二维数组,求每一行的最大值、最小值和平均值
        double max2[3], min2[3], avg2[3];
        for (int i = 0; i < 3; i++) {
            max2[i] = arr2[i][0];
            min2[i] = arr2[i][0];
            double sum2 = 0;
            for (int j = 0; j < 4; j++) {
                if (arr2[i][j] > max2[i]) {
                    max2[i] = arr2[i][j];
                }
                if (arr2[i][j] < min2[i]) {
                    min2[i] = arr2[i][j];
                }
                sum2 += arr2[i][j];
            }
            avg2[i] = sum2 / 4;
            cout << "二维数组第" << i+1 << "行最大值为:" << max2[i] << endl;
            cout << "二维数组第" << i+1 << "行最小值为:" << min2[i] << endl;
            cout << "二维数组第" << i+1 << "行平均值为:" << avg2[i] << endl;
        }
    
        return 0;
    }