我正在尝试打印形状矩阵,但是我的程序继续崩溃。我的代码有什么问题?
#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程序员。
答案 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;
}