C語言中怎么用printf打印折線圖

小億
115
2024-01-24 19:39:31
欄目: 編程語言

要使用printf打印折線圖,可以使用循環(huán)結(jié)構(gòu)和條件語句來控制輸出的字符。以下是一個(gè)示例代碼:

#include <stdio.h>

void printLineChart(int data[], int n) {
    int max = data[0];
    for (int i = 1; i < n; i++) {
        if (data[i] > max) {
            max = data[i];
        }
    }

    for (int i = max; i > 0; i--) {
        for (int j = 0; j < n; j++) {
            if (data[j] >= i) {
                printf("* ");
            } else {
                printf("  ");
            }
        }
        printf("\n");
    }

    for (int i = 0; i < n; i++) {
        printf("%d ", data[i]);
    }
    printf("\n");
}

int main() {
    int data[] = {5, 3, 8, 2, 7};
    int n = sizeof(data) / sizeof(data[0]);

    printLineChart(data, n);

    return 0;
}

上述代碼中,printLineChart函數(shù)接受一個(gè)整型數(shù)組和數(shù)組長(zhǎng)度作為參數(shù),其中數(shù)組data存儲(chǔ)了要繪制折線圖的數(shù)據(jù)。首先,通過遍歷數(shù)組找到最大值,確定圖表的最高點(diǎn)。

然后,使用嵌套的for循環(huán)依次遍歷每一行和每一列,根據(jù)數(shù)據(jù)的大小來判斷是否要在相應(yīng)的位置輸出星號(hào)*。如果數(shù)據(jù)大于等于當(dāng)前行數(shù),則輸出星號(hào),否則輸出空格。這樣就能夠按照折線圖的形式打印出來。

最后,使用一個(gè)簡(jiǎn)單的for循環(huán)輸出數(shù)據(jù)本身,作為底部的刻度。

運(yùn)行上述代碼,輸出結(jié)果如下:

*     * 
*     * 
* *   * 
* *   * 
* * * * 
5 3 8 2 7

可以看到,通過printf按照一定的規(guī)則打印字符,就可以實(shí)現(xiàn)簡(jiǎn)單的折線圖效果。

0