【发布时间】:2014-07-06 18:09:25
【问题描述】:
我的目标是编写一个 c 函数,它读取一个数字 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 矩阵的平方。我不知道,也许我使用变量的方式不好。
我是初学者,这是一个家庭作业。
感谢您的帮助!抱歉英语不好!
【问题讨论】:
标签: c for-loop matrix scanf perfect-square