簡體   English   中英

C數組中的垃圾值

[英]garbage value in C array

我正在嘗試編寫一個 C 代碼,它將在屏幕上打印一個金字塔結構,就像這樣。

在此處輸入圖片說明

我寫的相應代碼是這樣的。

#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;
}

它給出了類似的輸出

在此處輸入圖片說明

我知道我犯了一些愚蠢的錯誤,但此時此刻,我無法找到問題所在。 讓我聽聽您對此的評論。

在函數參數中:

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。

if (arr[i][j] == 1)
    printf("*");
else 
    printf(" ");

if condition為真,則此語句在此語句中給出垃圾值,然后打印 else 語句,當 else 為真時,它打印垃圾值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM