形状矩阵帮助(保持崩溃)

时间:2019-05-14 21:54:58

标签: c

我正在尝试打印形状矩阵,但是我的程序继续崩溃。我的代码有什么问题?

#include <stdio.h>

int main ()
{
    int row, col;

    printf("How many rows?\n");
    scanf("%d", &row);
    printf("How many columns?\n");
    scanf("%d", &col);

    int i=0,j=0;

    while (i<row)
    {
        i ++;

        while(j < col)

        {
            printf("$");
            j ++;
        }
        return(0);
    }
}

我尝试通过初始化计数器来解决问题,并尝试查找语法错误。另外,如何更好地解决问题?我是入门级C程序员。

2 个答案:

答案 0 :(得分:0)

包括

int main ()
{
    int row, col;

    printf("How many rows?\n");
    scanf("%d", &row);
    printf("How many columns?\n");
    scanf("%d", &col);

    int i=0,j=0;

    while (i<row)
    {
        i++;

        j = 0;
        while(j < col)
        {
            printf("$");
            j++;
        }
//         return(0); you don't need a return here
    }
}

或者,使用for循环会更好

for (int i = 0; i < row; ++i)
{
    for (int j = 0; j < col; ++j)
        printf("$");
}

另外,在使用前验证行和列将是一个好主意

if (row < 0 || row > YourRowCount || col < 0 || col > YourColCount)
{
    printf("Error row / col: %d,%d\n", row, col);
    exit(-1);
}

答案 1 :(得分:0)

您要从循环中返回,这是return(0)的第一个循环!

如果您被允许使用for循环,也可以像这样:

#include <stdio.h>

int main (void)
{
    int row, col;

    printf("How many rows?\n");
    scanf("%d", &row);
    printf("How many columns?\n");
    scanf("%d", &col);

    int i = 0, j = 0;

    for (i = 0; i < row; i++) {
        for (j = 0; j < col; j++) {
            printf("$");
        }
        printf("\n");
    }

    getch();

    return 0;
}