我正在嘗試撰寫一個列印用戶選擇的矩陣行的函式。它適用于矩陣的第一行,但不適用于其他行。這是我的代碼。
row:我們要列印的行 n:矩陣中的行/列數
矩陣 (nxn)
代碼:
#include <stdio.h>
#define SIZE 50
void prow(float *arr, int row, int n){
int i;
for(i = row * n; i < (row * n) n; i ){
printf("%f ", *(arr i));
}
}
int main(){
int n, i, j;
float matrix[SIZE][SIZE];
printf("Row / column number: ");
scanf("%d", &n);
for(i = 0; i < n; i ){
for(j = 0; j < n; j ){
printf("[%d][%d] element: ", i, j);
scanf("%f", &matrix[i][j]);
}
}
prow(&matrix[0][0], 2, n);
return 0;
}
uj5u.com熱心網友回復:
編譯器已經知道你的陣列是 50 x 50,沒有別的了
#define SIZE 50
float matrix[SIZE][SIZE];
但是您(可能?)使用陣列就好像它具有不同的大小,因為您輸入n
的是大小。因此,當您分配條目時,
scanf("%f", &matrix[i][j]);
它們沒有被放置在正確的位置(根據編譯器,每行仍然是 50 個條目,盡管n
是別的東西)。
確保n
并SIZE
匹配。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/470459.html
下一篇:如何檢測一塊記憶體是否已經釋放