6
我正在嘗試編寫2個函數,一個讀取矩陣(2D數組)和另一個將其打印出來。到目前爲止,我有:使用指針/ malloc創建二維數組,然後將其打印出來
/* Read a matrix: allocate space, read elements, return pointer. The
number of rows and columns are given by the two arguments. */
double **read_matrix(int rows, int cols){
double **mat = (double **) malloc(sizeof(double *)*rows);
int i=0;
for(i=0; i<rows; i++){
/* Allocate array, store pointer */
mat[i] = (double *) malloc(sizeof(double)*cols);
//what to do after??
return mat;
}
然後打印矩陣功能,不知道這是否是正確的
void print_matrix(int rows, int cols, double **mat){
for(i=0; i<rows; i++){ /* Iterate of each row */
for(j=0; j<cols; j++){ /* In each row, go over each col element */
printf("%f ",mat[i][j]); /* Print each row element */
}
}}
,這裏是我使用運行的主要功能:
#include <stdio.h>
#include <stdlib.h>
double **read_matrix(int rows, int cols);
void print_matrix(int rows, int cols, double **mat);
void free_matrix(int rows, double **mat);
int main(){
double **matrix;
int rows, cols;
/* First matrix */
printf("Matrix 1\n");
printf("Enter # of rows and cols: ");
scanf("%d %d",&rows,&cols);
printf("Matrix, enter %d reals: ",rows*cols);
matrix = read_matrix(rows,cols);
printf("Your Matrix\n"); /* Print the entered data */
print_matrix(rows,cols,matrix);
free_matrix(rows, matrix); /* Free the matrix */
return 0;}
投票關閉,因爲它看起來像在代碼審查stackexchange的計算器而不是一個問題。雖然代碼看起來基本上很好。 –
你確切的問題是什麼?我在這裏看不到任何問題...... – Christoph
@BenJackson:它在[review.stackexchange](http://codereview.stackexchange.com/q/17833/6143)上被封爲[offtopic]。這不是一個好的體驗。 – jfs