#include<iostream>
using namespace std;
void init(float *a);
void output(float *a);
float * calculate(float *a, float *b, float *result);
int n;
void main(){
cout<<"请输入矩阵的维数:";
cin>>n;
float *a = new float[n*n];
float *b = new float[n*n];
float *c = new float[n*n];
cout<<"请输入第一个矩阵:";
init(a);
cout<<"请输入第二个矩阵:";
init(b);
cout<<"第一个矩阵:"<<endl;
output(a);
cout<<"第二个矩阵:"<<endl;
output(b);
cout<<"结果矩阵:"<<endl;
output(calculate(a,b,c));
delete []a;
delete []b;
delete []c;
}
void init(float *a){
for(int i = 0; i < n*n; i++){
cin>>a[i];
}
}
void output(float *a){
for(int i = 0; i < n*n; i++){
if(i%n == 0 && i != 0){
cout<<endl;
}
cout<<a[i]<<" ";
}
cout<<endl;
}
float * calculate(float *a, float *b, float *result){
int k = 0;
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
float temp = 0;
for(int w = 0; w < n; w++){
temp += a[i*n+w]*b[w*n+j];
}
result[k] = temp;
k++;
}
}
return result;
}
<google面试题>实现两个N*N矩阵的乘法,矩阵由一维数组表示
最新推荐文章于 2024-07-17 19:45:20 发布