C語言實現(xiàn)打印星號圖案
C語言 打印星號圖案
打印一個上半部分為等腰三角形,下半部分為倒等腰三角形星號圖案:思想為創(chuàng)建一層大的循環(huán)表示行數(shù),然后里面一層循環(huán)表示空格的數(shù)目,一層表示星號的數(shù)目,假設(shè)有n行,i表示第i行,空格數(shù)為(n-i),星號數(shù)為(2*i-1);下半部分從第n行開始,逐漸減少,其他同上半部分。
如有寫的不對,望指教。
代碼如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i, j;
int n;
printf("輸入想要打印的上半部分的行數(shù):\n");//上半部分和下半部分是對應(yīng)的
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
for (j = 1; j <= n - i; j++)
{
putchar(' ');
}
for (j=1; j <= 2 * i - 1; j++)
{
putchar('*');
}
putchar('\n');
}
for (i = n; i >= 1; i--)
{
for (j= 1; j <= n - i; j++)
{
putchar(' ');
}
for (j = 1; j <= 2 * i - 1; j++)
{
putchar('*');
}
putchar('\n');
}
system("pause");
return 0;
}圖為:

C語言 循環(huán)打印星號圖形*
用兩層循環(huán)
- 外層循環(huán) 控制行(行數(shù)、換行)
- 內(nèi)層循環(huán) 控制列( 列數(shù)、列的符號 )
第一種效果圖:

為什么是j<=i*2呢?

- 第一行以0計算,第一行星數(shù)為0
- 第二行為1計算,第二行星數(shù)為2
.。。。。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j;
//外層控制行數(shù)和換行
for(i=0;i<5;i++)
{
//內(nèi)存循環(huán)控制列數(shù)和星數(shù)量
for(j=0;j<=i*2;j++)
{
printf("*");
}
printf("\n");
}
return 0;
}第二種效果圖:

為什么是4-i呢
- 第一行i=0時,j是4
- 第二行i=1時,j=3
.。。。。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j;
//外層控制行數(shù)和換行
for(i=0;i<5;i++)
{
//內(nèi)存循環(huán)控制列數(shù)和星數(shù)量
for(j=0;j<=4-i;j++)
{
printf("*");
}
printf("\n");
}
return 0;第三種效果圖:

為什么是輸入空格的是j<=3-i呢
- 第一行i=0,有五行,第一行應(yīng)該有4個空格,所以i從0開始話
。。。。。
#include <stdio.h>
#include <stdlib.h>
int main()
{
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++)
{
printf("*");
}
printf("\n");
}
return 0;第四種效果圖:

為什么是j<i和8-i*2,自己根據(jù)上面三種圖的思路慢慢畫出來吧
int i,j;
for(i=0;i<5;i++)
{
for(j=0;j<i;j++)
{
printf(" ");
}
for(j=0;j<=8-i*2;j++)
{
printf("*");
}
printf("\n");
}
return 0;第五種效果圖:

三四結(jié)合就是第五種
#include <stdio.h>
#include <stdlib.h>
int main()
{
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++)
{
printf("*");
}
printf("\n");
}
for(i=0;i<5;i++)
{
for(j=0;j<i;j++)
{
printf(" ");
}
for(j=0;j<=8-i*2;j++)
{
printf("*");
}
printf("\n");
}
return 0;再來個另類的第六種

#include <stdio.h>
#include <stdlib.h>
void main()
{
int num,i,j;
printf("請輸入一個數(shù)字:");
scanf("%d",&num);
//上半部分
for(i = 0;i <= num;i++)
{
for(j = 0;j < num-i;j++)
{
printf("%d",num-i);
}
printf("\n");
}
printf("\n");
//下半部分
for(i = 0;i < num;i++)
{
for(j = 0;j <= i;j++)
{
printf("%d",i+1);
}
printf("\n");
}以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
淺析C++11中的右值引用、轉(zhuǎn)移語義和完美轉(zhuǎn)發(fā)
對于c++11來說移動語義是一個重要的概念,一直以來我對這個概念都似懂非懂。最近翻翻資料感覺突然開竅,因此順便記錄下C++11中的右值引用、轉(zhuǎn)移語義和完美轉(zhuǎn)發(fā),方便大家查閱參考。2016-08-08
C語言用函數(shù)實現(xiàn)電話簿管理系統(tǒng)
這篇文章主要為大家詳細介紹了C語言用函數(shù)實現(xiàn)電話簿管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-12-12
openCV4.1.1+VS2019環(huán)境配置詳解
這篇文章主要介紹了openCV4.1.1+VS2019環(huán)境配置詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
解析C++編程中virtual聲明的虛函數(shù)以及單個繼承
這篇文章主要介紹了C++編程中virtual聲明的虛函數(shù)以及單個繼承,剖析虛函數(shù)和單個基類所能夠繼承的成員,要的朋友可以參考下2016-01-01

