我正在尝试编写一个正方形,该正方形由两个带有星号和破折号的三角形组成。输出应如下所示:
*-----
**----
***---
****--
*****-
我的代码:
#include <stdio.h>
#include <stdlib.h>
int main (int argc, char *argv[])
{
if (argc < 3)
{
printf ("Usage: p5 <height>\n");
return 0;
}
int i, j;
int rows = atof (argv[2]);
for (i = 0; i < rows; i++)
{
for (j = 0; j <= rows; j++)
{
printf (j <= i ? "*" : "-");
}
puts ("");
}
return 0;
}
输出:
gcc version 4.6.3
Usage: p5 <height>
当我编译它时,我看不到任何问题,因为它似乎可以工作,但未显示预期的输出。任何人都可以帮助我吗?我还是C编程新手。
答案 0 :(得分:0)
使用命令行参数时,第一个(argv[0]
)是可执行文件的名称。因此,在您的情况下,您只需要两个参数,exe的名称和正方形的高度。因此,您的if
条件变为:
if (argc < 2)
{
printf ("Usage: p5 <height>\n");
return 0;
}
行数是第二个参数。
int rows = atoi (argv[1]);
您还需要更改第二个for
循环,因为正方形的高度和宽度应该相同。
for (j = 0; j < rows; j++)