輸出僅以錯誤的順序列印矩陣的幾個元素 我認為列印回圈有問題但無法弄清楚
#include <stdio.h>
int main()
{
int x=0, y=0;
int a[x][y];
printf("enter the number of rows in first matrix:\n");
scanf("%d", &x);
printf("enter the number of columns in first matrix:\n");
scanf("%d", &y);
printf("enter elements of first matrix\n");
for (int i = 0; i < x; i )
{
for (int j = 0; j < y; j )
{
printf("enter element %d %d\n", i, j);
scanf("%d", &a[i][j]);
}
}
for (int p = 0; p < x; p )
{
for (int q = 0; q < y; q )
{
printf("%d\t", a[p][q]);
}
printf("\n");
}
return 0;
}
uj5u.com熱心網友回復:
您在接收矩陣的大小之前宣告了矩陣(您是變數 x 和 y)。在您的代碼中,矩陣被宣告為 a[0][0]。
解決方案:
#include <stdio.h>
int main() {
int x, y;
printf("enter the number of rows in first matrix:\n");
scanf("%d", &x);
printf("enter the number of columns in first matrix:\n");
scanf("%d", &y);
int a[x][y];
printf("enter elements of first matrix\n");
for (int i = 0; i < x; i ) {
for (int j = 0; j < y; j ) {
printf("enter element %d %d\n", i, j);
scanf("%d", &a[i][j]);
}
}
for (int p = 0; p < x; p ) {
for (int q = 0; q < y; q ) {
printf("%d\t", a[p][q]);
}
printf("\n");
}
return 0;
}
uj5u.com熱心網友回復:
您正在用 0 行和 0 列初始化您的二維陣列。
你需要int a[x][y]向下移動scanf("%d", &y);
#include <stdio.h>
int main() {
int x, y;
printf("enter the number of rows in first matrix:\n");
scanf("%d", &x);
printf("enter the number of columns in first matrix:\n");
scanf("%d", &y);
int a[x][y];
printf("enter elements of first matrix\n");
for (int i = 0; i < x; i ) {
for (int j = 0; j < y; j ) {
printf("enter element %d %d\n", i, j);
scanf("%d", &a[i][j]);
}
}
for (int p = 0; p < x; p ) {
for (int q = 0; q < y; q ) {
printf("%d\t", a[p][q]);
}
printf("\n");
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/377727.html
