我之前解决过如何在C中绘制一个矩形,现在必须修改程序以绘制一个看起来像的三角形......
+
|\
| \
| \
| \
+----+
我非常感谢任何帮助,因为我一直试图这样做几个小时!到目前为止,这是我的代码:
int main()
{
int rows, cols, x, y;
rows = 5;
cols = 5;
for (x=0; x<rows; x++){
for (y=0; y<cols; y++){
if(y==0 && x==0)
printf("+\n");
if(y==0)
printf("|\n");
if(x==rows - 1 && y==0)
printf("+");
if(x==rows - 1)
printf("-");
if(x==rows - 1 && y==cols - 1)
printf("+");
if(x==y)
printf("\\");
else if(x!=rows-1)
printf(" ");
}
}
return 0;
}
答案 0 :(得分:1)
如下所示交错它们:
#include <stdio.h>
int main(void) {
int i=0,j=0;
printf("+\n");
for(i=0;i<5;i++)
{
if(i==4)
printf("+");
else
printf("|");
j=i;
while(j--)
{
if(i==4)
{
printf("-");
}
else
printf(" ");
}
if(i==4)
printf("+");
else
printf("\\");
printf("\n");
}
return 0;
}
输出:
+
|\
| \
| \
| \
+----+
答案 1 :(得分:1)
第一行是单+
,可以视为例外。
其余行遵循可预测的模式
start char
filler chars
end char
最后一行与其他行的不同之处仅在于它使用了不同的字符集。因此,一种解决方案是声明一个数组来保存两个字符集,并在最后一行切换字符集。
#include <stdio.h>
#define N 5
int main( void )
{
char charset[2][3] = { { '|', ' ', '\\' }, { '+', '-', '+' } };
int s = 0;
printf( "+\n" ); // output the first row
for ( int row = 0; row < N; row++ )
{
if ( row == N-1 ) // switch character sets on
s = 1; // the last row
putchar( charset[s][0] ); // output the first character
for ( int col = 0; col < row; col++ )
putchar( charset[s][1] ); // output the filler characters
printf( "%c\n", charset[s][2] ); // output the last character
}
}
答案 2 :(得分:1)
抓住:!)
#include <stdio.h>
int main(void)
{
while ( 1 )
{
printf( "Enter height of triangle (0 - exit): " );
size_t height = 0;
scanf( "%zu", &height );
if ( !height ) break;
size_t i = 0;
printf( "\n+\n" );
while ( ++i < height - 1 )
{
printf( "|%*c\n", i, '\\' );
}
if ( i < height )
{
printf( "+" );
while ( --i ) printf( "-" );
printf( "+\n" );
}
}
return 0;
}
如果要输入6,5,4,3,2,1,0,那么程序输出将是
Enter height of triangle (0 - exit): 6
+
|\
| \
| \
| \
+----+
Enter height of triangle (0 - exit): 5
+
|\
| \
| \
+---+
Enter height of triangle (0 - exit): 4
+
|\
| \
+--+
Enter height of triangle (0 - exit): 3
+
|\
+-+
Enter height of triangle (0 - exit): 2
+
++
Enter height of triangle (0 - exit): 1
+
Enter height of triangle (0 - exit): 0