【发布时间】:2012-05-04 21:58:26
【问题描述】:
当用户为钻石输入 5 时,我希望能够像这样打印钻石。但也适用于任何奇数且大于 0 的值。
我有一个代码可以为用户输入 5 制作菱形,但不适用于所有奇数输入..
half = (size/2)+1;
for (a=1; a <= half ; a++) /*top to mid row of diamond*/
{
for (b=a; b<half;b++)
{
printf(" ");
}
for (c= size -2* a; c <= half; c++)
{
printf("*");
}
printf("\n");
}
for (a = 1; a < half;a++)
{
for (b = a; b>0;b--)
{
printf(" ");
}
for (c = size-2*a; c >0 ;c--)
{
printf("*");
}
printf("\n");
}
return 0;
}
任何帮助将不胜感激。谢谢。
迈克
【问题讨论】:
-
你不需要嵌套循环,两个循环怎么样,一个递增,一个递减,尝试一下并报告你的尝试。
-
谷歌上到处都是结果和例子(“C print diamond”),到目前为止你尝试过什么?
-
试着问自己以下问题:第一行需要打印多少个空格和星号?与前一行相比,每行需要多少个空格和星号?在某些时候,您需要打印更多的空格和更少的星号:什么时候?
-
重新标记为作业。不想冒犯,但如果你坐下来思考 5 分钟,这很简单。
-
@Dogbert,这是一个相当危险的假设。我敢肯定,大多数病理学护士都认为抽血“非常简单”,但这不是我会尝试的事情。这里的人们在各个领域的技能水平大相径庭。