1
晚上好, 我的任务是创建一个带有框架消息的动态菱形。 我一直在寻找一种方法来做到这一点几个小时,但我真的开始失去理智。创建带有框架消息的菱形
请注意,我的水平是非常基本的,所以我的代码不包含任何复杂的材料。
我设法创建了菱形的上半部分,但我不知道如何在它的中间准确地获取消息。
用户应该能够输入框架的字符串,大小和字符。 F.ex:
用户输入是:
5,$,您好:
$
$ $
$ $
$ $
$ Hello $
$ $
$ $
$ $
$
到目前为止我的代码(少数未参考的变量,忽略它们):
void framedMessage()
{
int size = 6, i, sp, sym, a, b;
char rSymbol = '$', str[100] = { "Hello" };
//while ((strlen(str) % 2) == 0)
//{
// puts("Please Enter a string (even number of letters will be denied):");
// gets(str);
//}
//puts("Please enter a char for the rhombus(NOTE that the letters 'C','M','S','P','E' will return as small chars and not capital:");
//rSymbol = charInput();
//size = numericalInput(strlen(str) + 2, 999);
for (a = 0;a <= size;a++)
{
for (sp = 1;sp <= size;sp++)
{
if (sp == size && a == 0)
printf("%c", rSymbol);
if ((sp == size - a && a != 0))
{
printf("%c", rSymbol);
for (;sp < size + a;sp++)
{
printf(" ");
if (sp == size + a -2)
printf("%c", rSymbol);
}
}
printf(" ");
}
puts("");
}
}
菱形的上半部分并不那么难,但现在我不知道如何将信息完美地贴合空间(记住字符串不能有偶数的字符,因为它会破坏菱形)。
我将不胜感激任何帮助。有关代码本身的建设性的帖子(我应该尝试改进什么,避免使用等)将大受欢迎。
非常感谢。
也许你应该在网格纸上手工完成。然后,只需将您的逻辑思维过程转换为程序代码即可。毕竟,学习这样做是你任务的全部目的。 – hyde
关掉你的屏幕。拿一张纸,写一个*公式*,记录消息长度和行号,并返回星号/空格的数量。然后打开屏幕并编程。 –
谢谢你们,这正是我的教授一直告诉我的。我应该更频繁地听他的指示。我想我的懒惰比我更好。我一定会听取你的建议并写在纸上。非常感谢。我需要这种鼓励来自己做这件事。 – Blai