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

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
主站蜘蛛池模板: 奇米影视7777久久精品| 99自拍视频在线观看| jizz中国jizz欧洲/日韩在线| 免费黄色网址网站| 荐片app官网下载ios怎么下载| 蜜芽忘忧草二区老狼果冻传媒| 精品无码中文视频在线观看| 狂野黑人性猛交xxxxxx| 欧美亚洲国产一区二区三区| 日本成a人片在线观看网址| 成人精品一区二区电影| 女人张开腿让男桶喷水高潮| 国产精品日韩专区| 国产免费牲交视频| 人妻丰满熟妇无码区免费| 亚洲中文字幕在线无码一区二区| 久久久精品国产| jizz日本免费| 国产精品午夜剧场| 精品亚洲视频在线| 欧美性狂猛xxxxxbbbbb| 无码成人AAAAA毛片| 在线观看中文字幕| 国产午夜视频在线观看| 人人妻人人妻人人片色av| 亚洲成av人片在线观看| 亚洲人成精品久久久久| 久久狠狠高潮亚洲精品| 99re免费99re在线视频手机版| 美国人与动性xxx杂交视频| 日韩色视频一区二区三区亚洲| 国模精品一区二区三区| 全彩acg★无翼乌火影忍者| 久久久久亚洲精品美女| 16女性下面无遮挡免费| 精品久久久久久无码专区不卡 | 亚洲综合精品香蕉久久网| 精品国产一区二区三区AV性色| 日韩黄色免费观看| 夜先锋av资源网站| 四虎.com官网|