运用指针与函数、数组的方法进行C++编程。请各位大神帮帮忙呀~~~

对下列题目编写一个对任何数组都可以通用的程序先在此谢过... 对下列题目编写一个对任何数组都可以通用的程序

先在此谢过
展开
 我来答
ge2008ge12
2013-10-11 · TA获得超过1110个赞
知道小有建树答主
回答量:683
采纳率:100%
帮助的人:335万
展开全部
主要是采用二维数组的方法进行操作的,你可以较容易的改成指针的方法
#include <iostream>
using namespace std;

#define M 100
#define N 100

int main(void)
{

void input_matrix(double a[][N],int r,int c);
void print_matrix(double a[][N],int r,int c);
void transpose(double b[][M],double a[][N],int a_r,int a_c);
void array_mean_variance(double a[][N],double *menavalue,double *varvalue,int r,int c);
void Matrix_multiplication(double c[][N],double a[][N],double b[][N],int m,int k,int n);

int m,n;

double A[M][N]= {0};

double A_T[M][N]= {0};
double C[M][N]= {0};
double A_meanvalue;
double A_varvalue;

cout <<"the A's row:"<<endl;
cin>>m;
cout <<"the A's col:"<<endl;
cin>>n;

cout<<"please input "<<m*n<<" member of A:"<<endl;

input_matrix(A,m,n);

cout<<"the A is:"<<endl;

print_matrix(A,m,n);

cout<<"the transpose:"<<endl;

transpose(A_T,A,m,n);

print_matrix(A_T,n,m);

array_mean_variance(A,&A_meanvalue,&A_varvalue,m,n);

cout<<"the A's menavalue is "<<A_meanvalue<<endl;
cout<<"the A'varvalue is "<<A_varvalue<<endl;

Matrix_multiplication(C,A,A_T,m,n,m);

cout<<"the C is:"<<endl;
print_matrix(C,m,m);

return 0;
}

void print_matrix(double a[][N],int r,int c)
{
int i,j;

for(i = 0;i < r; i++)
{
for(j = 0;j < c;j++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}

}

void input_matrix(double a[][N],int r,int c)
{
int i,j;

for(i = 0;i < r; i++)
for(j = 0;j < c;j++)
{
cin>>a[i][j];
}
}

void transpose(double b[][M],double a[][N],int a_r,int a_c)
{

int i,j;

for(i = 0;i < a_c; i++)
for(j = 0;j < a_r;j++)
{
b[i][j] = a[j][i];
}

}

void array_mean_variance(double a[][N],double *menavalue,double *varvalue,int r,int c)
{
int i,j;
double sum = 0;

for(i = 0;i <r;i++)
for(j = 0;j < c;j++)
{
sum+= a[i][j];

}

*menavalue = sum/(c*r);

sum = 0;

for(i = 0;i <r;i++)
for(j = 0;j < c;j++)
{
sum+= (a[i][j]- *menavalue)*(a[i][j]- *menavalue);

}

*varvalue = sum/(c*r);
}

void Matrix_multiplication(double c[][N],double a[][N],double b[][N],int m,int k,int n)
{
int i,j,in_k;
double sum = 0;

for(i = 0;i < m ;i++)
for(j = 0;j < n;j++)
{
sum = 0;
for(in_k = 0;in_k <k;in_k++)
{

sum += a[i][in_k]*b[in_k][j];

}

c[i][j]= sum;

}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式