c - 以二维数组显示矩阵

标签 c

我是c新手,试图以矩阵形式显示数组。我看过教程,但大多数都涉及 for 循环以在二维数组中应用矩阵概念。我正在使用 while 循环并以我的方式检查它。它虽然以矩阵形式显示,但没有显示准​​确的输出。如果我插入数字1,2..,9,它必须以如下形式显示:

1 2 3
4 5 6
7 8 9

但它显示为:

1 2 4
4 5 7
7 8 9

我无法理解为什么会发生这种情况。

#include<stdio.h>
#include<conio.h>

void main()
{

    int i=0,j=0;
    int arr[2][2];
    clrscr();
    while(i<=2)
    {
        j=0;
        while(j<=2)
        {
            scanf("%d",&arr[i][j]);
            j++;
        }
        i++;
    }
    i=0;
    while(i<=2)
    {
        j=0;
        while(j<=2)
        {
            printf("%d ",arr[i][j]);

            //printf("%c",k);
            j++;
            //k++;
        }
        printf("\n");
        i++;
    }
    printf("%d",arr[0][2]);
    getch();

最佳答案

你只需要以正确的方式声明二维数组即可存储9个元素,如下所示

int arr[3][3];  //3x3 =9 elements

您被声明为 arr[2][2] 。这是一个二维数组,存储四个元素 2x2 = 4

关于c - 以二维数组显示矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18551799/

相关文章:

MacOSX 中的 clGetEventProfilingInfo() 错误?

c - C 信号处理程序中的竞争条件难题

c++ - 以二进制形式打印文件

c - 尝试在我的程序中使用 libcurl 并出现 "undefined reference"错误

c - 错误: request for member ‘stream’ in something not a structure or union

带有 char 的条件在 C 中不起作用

c - fscanf 函数在预期为 9 时返回 -1

c - pthread_rwlock的优先级?

c - 缩放开罗图像表面

c - 如何运行此 DTrace 脚本来分析我的应用程序?