用C++编写一个程序,计算一个二维数组中所有元素的平均值(用指针处理)

2024-11-28 05:02:41
推荐回答(4个)
回答1:

#include
using namespace std;const M=3,N=3; //定义二维数组的行和列int main()
{
float a[M][N]={{1,2,3},{4,5,6},{7,8,9}}; //定义一个M行N列的二维数组.
float ave=0; //累加总成绩,计算平均值.
/*方法1: 转化成一维指针*/
float *p=(float *)a;
for(int i = 0; i < M * N; ++i)
{
cout << *( p + i ) << " "; //输出二维数组的所有元素.
ave = ave + *( p + i );
}
ave = ave / ( M * N );
cout << "平均值 = " << ave << endl; //输出结果; /*方法2: 数组指针*/
ave = 0; //重新置0;
float (*q)[N] = a;
for(i = 0; i < M; ++i)
{
for(int j = 0; j < N; ++j)
{
cout << (*(q+i))[j]<<" "; //输出二维数组的所有元素.
ave = ave + (*(q+i))[j];
}
}
ave = ave / ( M * N );
cout << "平均值 = " << ave << endl; //输出结果; return 0;
}

回答2:

#include using namespace std;int main()
{
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int (*p)[3]=a;
float sun=0,flag=0;
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
sun+=*(*(p+i)+j);
flag++;
}
}
cout< return 0;
}

回答3:

#include "stdio.h"#define max 100int avg(int *p,int x){ int i=0,s=0; while(i<=x) { s=s+p i++; p++; }}main(){ int a[max]; int i; for(i=0;i<=max;i++) { a[i]=i; } printf("平均值为:%d\n",avg(a,max););}

回答4:

#include#define sz 20int average(int *a,int n){int i,j,sum=0;for(i=0;i>array[i][j];cout<<"array's average :"<