c - C 数组中的垃圾值

标签 c arrays linux gcc

我正在尝试编写一个 C 代码,它将在屏幕上打印金字塔结构,如下所示。

enter image description here

我写的相应代码是这样的。

#include <stdio.h>

#include <stdlib.h>

void printArrayFunc(char arr[9][5]) {
  int i, j;
  printf("=========================================\nprinting the values\n");
  for (i = 0; i < 5; i++) {
    for (j = 0; j < 9; j++) {
      //printf("arr[%d][%d] = %d\n", i,j, arr[i][j]);
      if (arr[i][j] == 1)
        printf("*");
      else
        printf(" ");
    }
    printf("\n");
  }
}


int main() {
  int i, j;
  char arr[9][5] = {
    0
  };

  printf("============================\nfilling the values\n");
  for (i = 0; i < 5; i++) {
    for (j = 4 - i; j <= 4 + i; j++) {
      arr[i][j] = 1;
      // printf("arr[%d][%d]= %d\n",i,j,arr[i][j]);
    }
    //printf("\n");
  }
  printArrayFunc(arr);

  return 0;
}

它给出的输出如下

enter image description here

我知道我犯了一些愚蠢的错误,但此时此刻,我无法找到问题所在。让我听听您对此的评论。

最佳答案

在函数参数中:

char arr[9][5]

在循环中:

for (i = 0; i<5; i++) {
    for (j = 0; j<9;j++) {
        if (arr[i][j] == 1)

您翻转了ij 的位置。 i 应从 0 到 9,j 应从 0 到 5。

关于c - C 数组中的垃圾值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16530253/

相关文章:

c++ - shellsort 算法不起作用

java - 在 Java 中反转数组

c - 在C中使用互斥锁同步pthread

c - printf 不打印到屏幕

c - Linux framebuffer像素位域通用实现

c - 如何找出数组中有多少个数字

linux - Shell 脚本未启动服务

linux - 如何接受 'Did you mean?' 终端/git 建议

c - 这个数据报套接字有什么问题?

c - 检索传递给可变参数函数的 int32_t 的可移植方法