定义一个长度为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);
}
二维数组定义的四种方式:
数据类型 数组名[ 行数 ][ 列数 ];
数据类型 数组名[ 行数 ][ 列数 ] = { {数据1,数据2 } ,{数据3,数据4 } };
数据类型 数组名[ 行数 ][ 列数 ] = { 数据1,数据2,数据3,数据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;
}
总结:在定义二维数组时,如果初始化了数据,可以省略行数
定义一个长度为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;
}