我的目标是编写 ac 函数,它读取一个数字 n 和 n*n 矩阵的元素(类型:double),然后我得到矩阵自身相乘的结果。
例子:
输入:
3
1.0 0.0 0.0
1.0 1.0 1.0
0.0 0.0 1.0
输出:
1.0 0.0 0.0
2.0 1.0 2.0
0.0 0.0 1.0
我有这个:
#include <stdio.h>
#include <stdlib.h>
void square(){
int n;
scanf("%i", &n);
double**matrix;
matrix=(double**)malloc(n*sizeof(double*));
int i;
for(i=0; i<n; i++){
matrix[i]=(double*)malloc(n*sizeof(double));
}
int j;
for(i=0; i<n; i++){
for(j=0; j<n; j++){
scanf("%d", &matrix[i][j]);
}
}
double**square;
square=(double**)malloc(n*sizeof(double*));
for(i=0; i<n; i++){
square[i]=(double*)malloc(n*sizeof(double));
}
int k;
for(i=0; i<n; i++){
for(j=0; j<n; j++){
square[i][j]=0;
for(k=0; k<n; k++){
square[i][j]+=matrix[i][k]*matrix[k][j];
}
printf("%d ", square[i][j]);
}
printf("\n");
}
}
int main(){
square();
return 0;
}
我的问题是我只能读取矩阵的一行,然后我得到随机 n*n 矩阵的平方。也许我以不好的方式使用变量,我不知道。
我是初学者,这是一个家庭作业。
谢谢你的帮助!对不起英语不好!