C語言利用for循環打印菱形


 C語言利用for循環打印菱形(高度為奇數)

這次用的方法是上下部分分開打印,先打印上部分,再打印下部分。

先舉個簡單的例子打印,再改進代碼,登堂入室從而理解。

例:打印一個高度(高度必須為奇數)為 5 的菱形,上下拆分 就是 上部分為 3行的三角形 ,下部分為2行的倒三角形(代碼如下:)

#include<stdio.h>
int main()
{
    int i,j;
    for(i = 1;i <= 3;i++)//打印高度為3的三角形
    {
        for(j=i;j<=3;j++)//打印上部分空格
        {
            printf(" ");
        }
        for(j = 1;j <= 2*i-1;j++)//打印三角形實體
        {
            printf("*");
        }
            printf("\n");
        }
    //=================================上下部分分界線
        for(i = 1;i <= 2;i++) //打印下部分高度為2的倒三角形
        {       
        for(j = 1;j <= (2+i)-1;j++) //打印下部分空格
        {
        printf(" ");
        }
        for(j = 1;j <= 5-(i*2);j++)//打印倒三角形實體
        {
        printf("*");
        }
        printf("\n");
        }

        return 0;
        }

效果圖如下:

 

 

我們知道上面的原理 我就就可以進階的改寫代碼 從而實現打印任意高度的菱形

我們要求輸入高度 且 改變里面的數值 就得到了以下代碼:

 

#include<stdio.h>
int main()
{
    int i,j,height;
    printf("please enter height:");
    scanf("%d",&height);
    for(i = 1;i <= (height / 2) + 1;i++)//打印高度為height的三角形
    {
        for(j=i;j<= (height / 2) + 1;j++)//打印上部分空格
        {
            printf(" ");
        }
        for(j = 1;j <= 2*i-1;j++)//打印三角形實體
        {
            printf("*");
        }
            printf("\n");
        }
    //=================================上下部分分界線
        for(i = 1;i <= height / 2;i++) //打印下部分高度的倒三角形
        {       
        for(j = 1;j <= (2+i)-1;j++) //打印下部分空格
        {
        printf(" ");
        }
        for(j = 1;j <= height - (i*2);j++)//打印倒三角形實體
        {
        printf("*");
        }
        printf("\n");
        }

        return 0;
        }

 

 

效果圖:

 

注意:這里的高度必須是奇數,否者是不能打印出來菱形的! 

說明:這里的打印空格 和 打印三角形實體 是需要算出來的,可以去研究一下。

最后:希望能幫到有需要的人。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM