我是 C 的新手,我有这个程序,我试图根据它的高度打印一个三角形:
/\
/__\
所以如果高度为2,那么'/','\'和'_'有2个。
所以我写了这些代码块:
#include <stdio.h>
int main(void)
{
int noOfRows;
printf("Enter height: ");
scanf("%d", &noOfRows);
int counter, rowNumber;
for (rowNumber = 0 ; rowNumber < noOfRows; rowNumber++)
{
// For each row, insert numberOfRows - N spaces before printing
for (counter = 0 ; counter < noOfRows- rowNumber ; counter++)
printf(" ");
// For each row, print N times the character
printf("/");
for (counter = 0; counter < noOfRows; counter++)
printf("\\");
printf(" ");
printf("\n");
}
return 0;
}
然而,当我输入 3 作为高度时,它给了我这样的输出。
/\\\
/\\\
/\\\
我想在每个新行出现时获得更多空间的“\”,但我不确定应该如何修改 for 循环以正确形成三角形。请让我知道我是否应该添加更多问题以使其更清楚。
我对代码进行了更改,目前有:
#include <stdio.h>
int main(void)
{
int noOfRows;
printf("Enter height: ");
scanf("%d", &noOfRows);
int counter, rowNumber;
for (rowNumber = 0 ; rowNumber < noOfRows; rowNumber++)
{
// For each row, insert numberOfRows - N spaces before printing
for (counter = 0 ; counter < noOfRows- rowNumber ; counter++)
printf(" ");
// For each row, print N times the character
printf("/");
for (counter = 0 ; counter < rowNumber ; counter++)
if(rowNumber >= 1)
for(int j=0; j<counter +1; j++)
printf(" ");
if(rowNumber != 0)
printf(" ");
printf("\\");
printf("\n");
}
return 0;
}
现在我当前的输出是这样的:
Height: 3
/\
/ \
/ \
Height: 5
/\
/ \
/ \
/ \
/ \
我在使某些“\”走得更远的代码中做错了什么?