【问题标题】:printing multidimensional array in c在c中打印多维数组
【发布时间】:2017-12-12 07:08:49
【问题描述】:

我正在尝试打印具有特定维度的数组,但它在运行时会打印出错误的实体。

//code
#include <stdio.h>

int my_array[2] [4] = {
{1, 2, 3, 4}, {5, 6, 7, 8}
};

void print_array(const int h, const int w, char array[][w]) {
   int nRow = h;
   int nColumn = w;
   for(int i = 0; i < nRow; i++)  {
        printf("--- Row %d --- \n", i);
        for(int j = 0; j < nColumn; j++) {
            printf("Column [%d] = %d \n", j, array[i] [j]);
        }
   }
}

int main(int argc, char **argv)
{
    const int array_width = 4;
    const int array_height = 2;
    print_array(array_height, array_width, my_array);
    return 0;
}

编译后打印出下一个结果:

【问题讨论】:

  • char array[][w] 应该是int array[][w]
  • @BarmakShemirani 而这应该作为答案发布。
  • 然后,它给了你一些警告,你应该更正你的代码以获得没有警告。
  • @SpongeBobSquarePants 微软不允许从控制台复制文本吗?您的输出应包含为文本,而不是文本的屏幕截图,其中文本是相对不可读的 5pt。
  • @BarmakShemirani “拉伸”答案并不难。将该行复制到下面的编辑字段中。使用一些换行符进行格式化。然后制作一个以“This line ...”开头并以“because ...”开头的小文本。提到charint 的不同大小,你猜猜它们是什么。这个问题不是世界级的,但也不是题外话。因此,您甚至应该避免被“对离题问题的好答案是坏答案”家族的人投反对票。

标签: c arrays function multidimensional-array


【解决方案1】:

在函数print_array 中将char array[][w] 更改为int array[][w],它需要整数数组。编译器会发出不兼容的类型警告,但很容易错过!尝试以零警告编译程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-11
    • 2018-12-02
    • 1970-01-01
    相关资源
    最近更新 更多