大學生新聞網,大學生新聞發布平臺
大學生新聞網
大學生新聞大學生活校園文學大學生村官
社會實踐活動社會實踐經歷社會實踐報告社會實踐總結社會實踐心得
全國排名校友會版軟科排名分類排名本科排名一本排名二本排名專科排名學校地址
求職簡歷職場法則面試技巧職場故事求職招聘大學生就業
英語學習計算機學習電氣工程機械工程經濟管理建筑設計財務會計
申請書證明書檢討書自薦信演講稿心得體會調查報告讀后感求職信推薦信其它范文

C語言輸出菱形(詳解版)

菱形,就是如下所示的圖形,總行數與總列數相等:




寫一個程序,根據用戶輸入的總行數,打印出菱形。

這個題目主要是找出規律,考察讀者的邏輯思維。

你可以從第一行開始,遍歷所有的列,也可以從第一列開始,遍歷所有的行。

下面的程序從第一行開始,遍歷所有的列。

設菱形的總行數為line,總列數為column,當前行為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 <stdio.h>
#include <stdlib.h>
 
int main(){
    int line;  // 菱形總行數
    int column;  // 菱形總列數
    int i;  // 當前行
    int j;  // 當前列
 
    printf("請輸入菱形的行數(奇數):");
    scanf("%d", &line);
    if(line%2==0){  // 判斷是否是奇數
        printf("必須輸入奇數!\n");
        exit(1);
    }
    column = line;  // 總行數和總列數相同
 
    for(i=1; i<=line; i++){  // 遍歷所有行
        if(i<(line+1)/2+1){  // 上半部分(包括中間一行)
            for(j=1; j<=column; j++){  // 遍歷上半部分的所有列
                if( (column+1)/2-(i-1)<=j && j<=(column+1)/2+(i-1) ){
                    printf("*");
                }else{
                    printf(" ");
                }
            }
        }else{  // 下半部分
            for(j=1; j<=column; j++){  // 遍歷下半部分的所有列
                if( (column+1)/2-(line-i)<=j && j<=(column+1)/2+(line-i) ){
                    printf("*");
                }else{
                    printf(" ");
                }
            }
        }
        printf("\n");
    }
 
    return 0;
運行結果:

請輸入菱形的行數(奇數):11
     *
    ***
   *****
  *******
 *********
***********
 *********
  *******
   *****
    ***
     *
    作者:大學生新聞網    來源:大學生新聞網
    發布時間:2025-03-11    閱讀:
    掃一掃 分享悅讀
  • C語言輸出菱形(詳解版)
  • C語言漢諾塔問題,用C語言實現漢諾塔
  • 漢諾塔問題是指:一塊板上有三根針 A、B、C。A 針上套有 64 個大小不等的圓盤,按照大的在下、小的在上的順序排列,要把這 64 個圓盤從
  • 03-10 關注:4
  • C語言日期函數,日期處理函數
  • 定義一個表示日期的結構體類型,再分別定義函數完成下列功能:計算某一天是對應年的第幾天,這一年一共多少天;計算兩個日期之間相隔的
  • 03-10 關注:4
主站蜘蛛池模板: 久久人人爽人人爽人人av东京热 | 真实国产乱视频国语| 色综合久久久久久久久五月| 欧洲乱码伦视频免费| 国产精华av午夜在线观看| 亚洲日韩AV一区二区三区四区| 99国产在线观看| 欧美精品一二三| 国产精品国三级国产AV| 亚洲影视一区二区| 亚洲丝袜第一页| 最近的中文字幕视频完整| 国产无遮挡又黄又爽网站 | 99热在线免费观看| 浪荡女天天不停挨cao日常视频| 在线看免费毛片| 亚洲日韩乱码中文无码蜜桃| 18禁美女黄网站色大片免费观看| 精品无码国产污污污免费网站| 成人精品视频一区二区三区尤物| 又湿又紧又大又爽a视频| 一个人看的免费观看日本视频www| 白丝女班长被弄得娇喘不停| 在线观看无码AV网站永久免费 | 亚洲激情视频在线观看| 窝窝女人体国产午夜视频| 暖暖直播在线观看| 国产免费无码av片在线观看不卡| 久99re视频9在线观看| 精品国产理论在线观看不卡| 天堂网在线www| 亚洲伊人色欲综合网| 麻豆tv入口在线看| 成人毛片免费观看视频大全| 人妻少妇乱子伦无码专区| 182tv成人午夜在线观看| 日韩精品一区二区三区免费视频| 四虎永久在线精品免费观看地址| www.com.av| 欧美xxxxx性喷潮| 国产一区二区三区无码免费|