1个回答
展开全部
双重循环你应该会了吧,打印图形自古以来就只有两种算法,一种是老老实实的对每个点进行描述,另一种是找到这些点的规律,不用说也知道你需要的是第二种。
要打印一个边长为n的直角三角形,我猜想题目要求应该还有等腰两个字,也就是45°的直角三角形,我们会需要一块“画布”:一个n*n大小的画布,我们用空格字符来表示空白画布,我们用*字符来表示一个点,那么将采用一个双重嵌套循环来打印画布,一层打印纵向一层打印横向,纵向的循环体很简单,执行横向的循环体和换行,横向的循环体里边嵌套一个条件语句,if,如果当前点满足图形要求则打印成*,否则打印成空格。
再说图形要求,我们知道我们的“画布”坐标系原点在左上角,右是x轴正向,下是y轴正向,等直三角形的边应该就可以求出来了,x=0,y=0,y=n-x-1,知道三条边的方程,题目就做完了,pascal语法我不了解,给你写个c的代码,看了上边的思路你应该能看懂了:
int
main()
{
int
x,y;
for(y=0;y<N;y++)
{
for(x=0;x<N;x++)
{
if(x==0||y==0||y==N-x-1)
{
printf("*");//打印*
}
else
{
printf("
");//打印空格
}
}
printf("\n");//打印换行
}
}
要打印一个边长为n的直角三角形,我猜想题目要求应该还有等腰两个字,也就是45°的直角三角形,我们会需要一块“画布”:一个n*n大小的画布,我们用空格字符来表示空白画布,我们用*字符来表示一个点,那么将采用一个双重嵌套循环来打印画布,一层打印纵向一层打印横向,纵向的循环体很简单,执行横向的循环体和换行,横向的循环体里边嵌套一个条件语句,if,如果当前点满足图形要求则打印成*,否则打印成空格。
再说图形要求,我们知道我们的“画布”坐标系原点在左上角,右是x轴正向,下是y轴正向,等直三角形的边应该就可以求出来了,x=0,y=0,y=n-x-1,知道三条边的方程,题目就做完了,pascal语法我不了解,给你写个c的代码,看了上边的思路你应该能看懂了:
int
main()
{
int
x,y;
for(y=0;y<N;y++)
{
for(x=0;x<N;x++)
{
if(x==0||y==0||y==N-x-1)
{
printf("*");//打印*
}
else
{
printf("
");//打印空格
}
}
printf("\n");//打印换行
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询