要使用printf打印折線圖,可以使用循環結構和條件語句來控制輸出的字符。以下是一個示例代碼:
#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
函數接受一個整型數組和數組長度作為參數,其中數組data
存儲了要繪制折線圖的數據。首先,通過遍歷數組找到最大值,確定圖表的最高點。
然后,使用嵌套的for循環依次遍歷每一行和每一列,根據數據的大小來判斷是否要在相應的位置輸出星號*
。如果數據大于等于當前行數,則輸出星號,否則輸出空格。這樣就能夠按照折線圖的形式打印出來。
最后,使用一個簡單的for循環輸出數據本身,作為底部的刻度。
運行上述代碼,輸出結果如下:
* *
* *
* * *
* * *
* * * *
5 3 8 2 7
可以看到,通過printf按照一定的規則打印字符,就可以實現簡單的折線圖效果。