-
#include"iostream"
#include
using namespace std;
void a(int i)
int j,k;
for(j=0;j<=7-i;j++)cout<<" ";輸出 0 到 7-i 空格,[j< (width) -i? ],你不能這樣理解,7可以大於你想輸出的數字,最星號線減去1除以2,你可以試試;
for(k=0;k<2*i+1;k++)cout<<"*";輸出 2*i+1 星號,因為你的輸出是 1,3,5,7,9 等,所以用 2*i+1;
cout<<"";
int main()
int i;
for(i=0;i<3;i++)a(i);輸出是從一行到三行,如果要輸出九行,把i<3改成i<4,把11行改成5,全部計算出來;
for(i=3;i>=0;i--)a(i);輸出從四行變為七行,這我可以遵循上述更改;
system("pause");
-
編寫乙個程式,根據使用者輸入的總行數列印出菱形。
本主題的主要目的是找出規則並檢查讀者的邏輯思維。
您可以從第一行開始並瀏覽所有列,也可以從第一列開始並瀏覽所有行。
以下過程從第一行開始,遍歷所有列。
設菱形的總行數為線,列總數為列,當前行為為 i,當前列為 j。 上半部分的模式與後半部分不同,應單獨討論。
我們看一下星號(*),想想星號的輸出條件是什麼,總結了以下規則。
1)對於上半部分(包括中間行),當前行和當前列滿足以下關係以輸出星號:
j>=(column+1) 2-(i-1) (column+1) 2-(i-1) 是第 i 行最左邊的星號。
j<=(column+1) 2+(i-1) (column+1) 2+(i-1) 是第 i 行最右邊的星號。
2)對於下半部分,當前行和當前列滿足以下關係以輸出星號:
j>=(column+1) 2-(line-i) (column+1) 2-(line-i) 是第 i 行中最左邊的星號。
j<=(column+1) 2+(line-i) (column+1) 2+(line-i) 是第 i 行中最右邊的星號。
如果不滿足上述條件,將輸出乙個空格。
於是我寫了以下**:
#include
#include
int main()
column = line;總行數和總列數相同。
for(i=1; i<=line; i++)else
elseelse}}
printf("");
return 0;
結果:請輸入鑽石的行數(奇數):11
-
1. 開啟可視 C++ 檔案 - 新建 - 檔案 - C++ 原始檔
2. 進入預處理命令和main功能,如下圖所示:
3. 定義變數並確定行數,如下圖所示
4.確定空格數,如下圖所示
5.確定每個行星號的編號並繞行,如下圖所示
6. 按如下方式執行:
-
以下是對**的解釋:
首先定義兩個巨集,中間值為40中第乙個*列出輸出,星號表示多個“*”或“0”字元,11行輸入n個值,然後輸出行數和中間最寬的行數為2*n-1,第乙個for迴圈用於輸出上三角形, 第二個是輸出下三角形。當輸出sp-1為空格時,同時輸出2*i-1“*”或“0”個字元,這是我們自己決定的,這裡有必要解釋一下,關於17行的語言**:
printf("%*c %.s", sp - 1, ' ', 2*i-1, star);
首先,我們來談談 %* 中的 * 符號,這裡稱為賦值抑制器。 他的角色是:標準陳述:
需要星號(assignment suppressor)來掃瞄獲勝輸入的輸入,但結果沒有儲存,帶星號的描述與輸入資料儲存位址不對應,用它來跳出乙個輸入資料項(這是對scanf輸入的),這裡,對於printf,以第11行**為例, %*c 字元 “*” 表示輸出欄位由對應的輸出項確定,上面 “*” 對應的輸出項是 sp-1(假設 sp-1 等於 4),則 %* c 等價於 %4c,所以他輸出到 %4c' '(空格)。 同樣對應於 %*s 與此類似,但請注意,此處為 %
s 而不是 %*s
有點裡面'.'如果你錯誤地寫了後者,你就不會得到正確的結果! 然後 %*s 和 %*s 有什麼區別? %*s 類似於 %*c,其中 c 輸出乙個字元,其 ASCII 程式碼是輸出元值,s 表示輸出字串,1) 輸入或輸出格式為“%c”的字元,即逐個字元輸入和輸出。
2)使用“%s”,整個字串是一次輸入或輸出。
示例:如果 s = abcdef
然後對於 printf("%3s, %5s", s, s, s, s);然後輸出。
abcdef, ab,abcd ,abcde
如果你明白了這一點,相信大家都會知道%*如何使用它!
這裡值得一提的是,巨集觀星定義中的字元數必須做得足夠多,否則當我們輸入大量n時,我們可能無法得到我們期望的結果,即輸出可能不是菱形,可以驗證一下,那麼為什麼會這樣,因為%*S輸出總是要靠星形,當電流輸入非常大的時候,而星形不夠提供,那麼當然會有問題,使用星號的字元數,我們也可以相應地改變輸出模式,可以實現各種不同的圖形,如果有興趣的話不妨試試。
嗯,樓上的答案都很好,二樓wals3310100的答案是目前找回文數量的最好方法,下面我再給出另一種考慮方式: >>>More
總結。 親愛的,九十九乘法表以三角形形式的具體輸出解釋如下:1親愛的,第一件事就是用C語言程式設計把九十九乘法表輸出成三角形的形式,如下圖所示: >>>More