【发布时间】:2017-10-24 06:30:46
【问题描述】:
抱歉,我再次需要帮助。我得到了一份作业,需要在屏幕上打印出来。但是,我必须满足各种要求。老实说,我真的卡住了,因为当我在网上查看时,我必须考虑空格,它并没有告诉我如何将三角形底部的小尖端编辑成另一个。这就是我所做的,但考虑到我必须做的案例数量,它真的很疯狂,我认为它不可行。请帮忙!非常感谢您。
1) 顶部基本长度必须是用户输入,最大数量为 79(基本长度=79)。
2) 三角形必须是对称的。
xxxxxxxxx
xxxxxxx
xxxxx
xxx
*
#include<stdio.h>
int main()
{
int i, space, base_length, star;
printf("Enter the base length:\n");
scanf("%d",&base_length);
if (base_length==15)
{
printf("XXXXXXXXXXXXXXX\n");
printf(" XXXXXXXXXXXXX\n");
printf(" XXXXXXXXXXX\n");
printf(" XXXXXXXXX\n");
printf(" XXXXXXX\n");
printf(" XXXXX\n");
printf(" XXX\n");
printf(" *\n");
}
else if (base_length==13)
{
printf(" XXXXXXXXXXXXX\n");
printf(" XXXXXXXXXXX\n");
printf(" XXXXXXXXX\n");
printf(" XXXXXXX\n");
printf(" XXXXX\n");
printf(" XXX\n");
printf(" *\n");
}
else if (base_length==11)
{
printf(" XXXXXXXXXXX\n");
printf(" XXXXXXXXX\n");
printf(" XXXXXXX\n");
printf(" XXXXX\n");
printf(" XXX\n");
printf(" *\n");
}
else if (base_length==9)
{
printf(" XXXXXXXXX\n");
printf(" XXXXXXX\n");
printf(" XXXXX\n");
printf(" XXX\n");
printf(" *\n");
}
else if (base_length==7)
{
printf(" XXXXXXX\n");
printf(" XXXXX\n");
printf(" XXX\n");
printf(" *\n");
}
else if (base_length==5)
{
printf(" XXXXX\n");
printf(" XXX\n");
printf(" *\n");
}
else if (base_length==3)
{
printf(" XXX\n");
printf(" *\n");
}
else if (base_length==1)
{
printf(" *\n");
}
else
{
printf("The maximum base length permitted is 79 and has to be an odd number.\nPlease try again with a valid number.\nThank You!!!");
}
return;
}
【问题讨论】:
-
您必须根据用户信息为要打印的每一行推导出一个公式,然后您需要对这些行使用循环并应用此公式
-
第一行应该很简单:只需打印与用户输入的数字一样多的
X。现在尝试为第 2、3、..n 行推导出一个 -
使用 char 缓冲区并在其中设置字符,而不是直接打印它们。这可能对您更有指导意义,并且代码更清晰。 (如果您可以在没有循环或递归的情况下进行行格式化,则可以加分。)
-
return;:必须返回一个值。 -
每一行都有
xX 和s空格。用户在第一行输入 X 的值,因此s必须为零。之后的每一行都少了两个 X,多了两个空格。一半的空格在 X 的左边,另一半在右边,可以忽略。
标签: c