首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C 語言字串列印 N 字圖形:演算法分析與完整實作

     編輯:程式設計綜合問答

圖形規律分析

輸入字串長度 n,輸出 n 行,每行長度 n:

  • 第 1 行:首字元 + (n-2) 空格 + 首字元
  • 第 i 行 (2 ≤ i ≤ n-1):第 i 字元 + (i-2) 空格 + 第 i 字元 + (n-i-1) 空格 + 第 i 字元
  • 第 n 行:末字元 + (n-2) 空格 + 末字元

完整程式碼

#include <stdio.h>
#include <string.h>

void printNPattern(const char *str) {
    int n = strlen(str);
    if (n == 0) return;

    for (int line = 0; line < n; line++) {
        char ch = str[line];
        if (line == 0 || line == n - 1) {
            // 首尾行
            printf("%c", ch);
            for (int s = 0; s < n - 2; s++) printf(" ");
            printf("%c\n", ch);
        } else {
            // 中間行
            printf("%c", ch);
            for (int s = 0; s < line - 1; s++) printf(" ");
            printf("%c", ch);
            for (int s = 0; s < n - line - 2; s++) printf(" ");
            printf("%c\n", ch);
        }
    }
}

int main() {
    char input[100];
    printf("輸入字串: ");
    scanf("%99s", input);
    printNPattern(input);
    return 0;
}

執行範例

輸入: ABCD
輸出:
A  A
B B
C  C
D  D

關鍵點總結

  • 先計算字串長度 n,決定行數與寬度。
  • 單層迴圈遍歷行號 line,依規律計算空格數量。
  • 注意邊界:n=1 時僅輸出單字元;n=2 時首尾行相同。
  • 控制台寬度限制:過長字串會換行顯示錯亂,建議限制 n ≤ 80。

總結

觀察圖形規律、抽象空格數量公式、單層迴圈即可完成任意長度字串的 N 字圖形列印,是經典的迴圈邏輯練習題。

  1. 上一篇文章:
  2. 下一篇文章:
Python Scrapy 優點是什麼?比直接用正則好在哪? Android SQLite 數據插入崩潰排查:空指針異常定位與數據庫操作最佳實踐 iOS UITextView 設置字體:Helvetica 字體名稱正確寫法 CSS 內部樣式表定義詳解: