C語(yǔ)言實(shí)現(xiàn)循環(huán)打印星號(hào)圖形再鏤空
C語(yǔ)言 循環(huán)打印星號(hào)圖形再鏤空
鏤空的原理
判斷什么時(shí)候打印星號(hào),什么時(shí)候打印空格

如果把這個(gè)圖形鏤空 成下面這個(gè)圖形

int i,j;
//外層控制行數(shù)和換行
for(i=0;i<5;i++)
{
//內(nèi)存循環(huán)控制列數(shù)和星數(shù)量
for(j=0;j<=3-i;j++)
{
printf(" ");
}
for(j=0;j<=i*2;j++)
{
if(i==0 || i==4 || j ==0 || j == 2*i) //第一行和最后一行不要鏤空,然后就是中間的兩邊,分別是j=0和j取最大值的時(shí)候
printf("*");
else
printf(" ");0
}
printf("\n");
}
return 0;第二種:

#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j;
for(i=0;i<9;i++)
{
for(j=0;j<9;j++)
{
if(i == 0 || i == 8 || j == 0 || j == 8)
{
printf("*");
}
else
printf(" ");
}
printf("\n");
}
第三種效果圖:

int main()
{
//上半部分
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<2-i;j++)
{
printf(" ");
}
for(j=0;j<=2+2*i;j++)
{
if(i == 0 || j == 0 || j == 2+2*i)
printf("*");
else
printf(" ");
}
printf("\n");
}
//中間部分
for(i=0;i<3;i++)
{
for(j=0;j<7;j++)
{
if(j == 0 ||j == 6)
printf("*");
else
printf(" ");
}
printf("\n");
}
//下半部分
for(i=0;i<3;i++)
{
for(j=0;j<i;j++)
{
printf(" ");
}
for(j=0;j<=6-2*i;j++)
{
if(i == 2 || j == 0 || j ==6-2*i )
printf("*");
else
printf(" ");
}
printf("\n");
}
return 0;
}第四種:

int main()
{
int i,j;
//上半部分
for(i=0;i<3;i++)
{
for(j=0;j<2-i;j++)
{
printf(" ");
}
for(j=0;j<=2*i;j++)
{
printf("*");
}
printf("\n");
}
//下半部分
for(i=0;i<7;i++)
{
for(j=0;j<5;j++)
{
if(j == 2)
printf("*");
else
printf(" ");
}
printf("\n");
}
return 0;C語(yǔ)言 打印菱形星號(hào)“*”圖案
題目
打印菱形星號(hào)“*”圖案。輸入一個(gè)正整數(shù)n(n為奇數(shù)),打印一個(gè)高度為n的“*”菱形圖案。試編寫(xiě)相應(yīng)程序。
程序簡(jiǎn)易流程圖如下:



#include<stdio.h> /*打印菱形圖案*/
int main (void)
{
int n,j,i; /*i為行數(shù),j為每行中的項(xiàng)數(shù)*/
printf("(n為奇數(shù))輸入圖案高度n:\n");
scanf("%d",&n);
if (n<=0||n%2==0) /*判斷n輸入正誤*/
printf("輸入錯(cuò)誤!");
else
{
for(i=1;i<=n/2+1;i++) /*打印上三角,(包括中間行)*/
{
for(j=1;j<=n/2+i;j++)
{
if(j>=n/2-i+2)
printf(" *");
else
printf(" ");
}
printf("\n");
}
for(i=n/2;i>=1;i--) /*打印下三角,(不包括中間行)*/
{ /*將i改為倒序,這樣就不必再次考慮每行中項(xiàng)的打印,下個(gè)for循環(huán)可以直接復(fù)制上三角部分*/
for(j=1;j<=n/2+i;j++) /*這個(gè)for循環(huán)與上三角一致 */
if(j>=n/2-i+2)
printf(" *");
else
printf(" ");
printf("\n");
}
}
return 0;
}運(yùn)行結(jié)果:



以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
C++編程模板匹配超詳細(xì)的識(shí)別手寫(xiě)數(shù)字實(shí)現(xiàn)示例
大家好!本篇文章是關(guān)于手寫(xiě)數(shù)字識(shí)別的,接下來(lái)我將在這里記錄我的手寫(xiě)數(shù)字識(shí)別的從零到有,我在這里把我自己的寫(xiě)代碼過(guò)程發(fā)出來(lái),希望能幫到和我一樣努力求知的人2021-10-10
C++中使用哈希表(unordered_map)的一些常用操作方法
C++標(biāo)準(zhǔn)庫(kù)中使用的unordered_map底層實(shí)現(xiàn)是哈希表,下面這篇文章主要給大家介紹了關(guān)于C++中使用哈希表(unordered_map)的一些常用操作方法,需要的朋友可以參考下2022-03-03
一文詳解C語(yǔ)言中的switch語(yǔ)句和while循環(huán)
這篇文章主要給大家詳細(xì)介紹了C語(yǔ)言中的switch語(yǔ)句和while循環(huán),文中通過(guò)代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2023-12-12
OpenCV + MFC實(shí)現(xiàn)簡(jiǎn)單人臉識(shí)別
這篇文章主要為大家詳細(xì)介紹了OpenCV + MFC實(shí)現(xiàn)簡(jiǎn)單人臉識(shí)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08
C++控制臺(tái)強(qiáng)化如何實(shí)現(xiàn)一定界面效果(簡(jiǎn)潔版)
這篇文章主要介紹了C++控制臺(tái)強(qiáng)化如何實(shí)現(xiàn)一定界面效果(簡(jiǎn)潔版),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
linux內(nèi)核select/poll,epoll實(shí)現(xiàn)與區(qū)別
這篇文章主要介紹了linux內(nèi)核select/poll,epoll實(shí)現(xiàn)與區(qū)別,需要的朋友可以參考下2016-11-11
C語(yǔ)言中自動(dòng)與強(qiáng)制轉(zhuǎn)換全解析
在編寫(xiě)C程序時(shí),類(lèi)型轉(zhuǎn)換是確保數(shù)據(jù)正確性和一致性的關(guān)鍵環(huán)節(jié),無(wú)論是隱式轉(zhuǎn)換還是顯式轉(zhuǎn)換,都各有特點(diǎn)和應(yīng)用場(chǎng)景,本文將詳細(xì)探討C語(yǔ)言中的類(lèi)型轉(zhuǎn)換機(jī)制,幫助您更好地理解并在實(shí)際編碼中靈活運(yùn)用這些知識(shí),需要的朋友可以參考下2025-02-02
C語(yǔ)言深入分析浮點(diǎn)型數(shù)據(jù)存儲(chǔ)
使用編程語(yǔ)言進(jìn)行編程時(shí),需要用到各種變量來(lái)存儲(chǔ)各種信息。變量保留的是它所存儲(chǔ)的值的內(nèi)存位置。這意味著,當(dāng)您創(chuàng)建一個(gè)變量時(shí),就會(huì)在內(nèi)存中保留一些空間。您可能需要存儲(chǔ)各種數(shù)據(jù)類(lèi)型的信息,操作系統(tǒng)會(huì)根據(jù)變量的數(shù)據(jù)類(lèi)型,來(lái)分配內(nèi)存和決定在保留內(nèi)存中存儲(chǔ)什么2022-08-08

