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