我正在尝试编写一个 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)
您翻转了i
和j
的位置。 i
应从 0 到 9,j
应从 0 到 5。
关于c - C 数组中的垃圾值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16530253/