因?yàn)樵诮K端里輸出,只能往前,往下輸出的特性,所以要移用對(duì)稱性來(lái)實(shí)現(xiàn)輸出正玄,余玄圖案。
#include <stdio.h>
#include <math.h>
int main() {
double y;
int x, f, i;
/* 輸出正玄, 單調(diào)區(qū)間 x: [-pi/2, pi/2], y: [-1, 1] */
/* 要分成兩個(gè)部分來(lái)計(jì)算輸出 */
for (y = 1; y > 0; y -= 0.1) {
x = asin(y) * 10;
for (i = 1; i < x; ++i) printf(" ");
printf("*");
for (; i < 32 - x; ++i) printf(" ");
printf("*\n");
}
for (y = 0; y >= -1; y -= 0.1) {
x = asin(y) * 10; /* x是負(fù)值 */
for (i = 1; i < 34 - x; ++i) printf(" ");
printf("*");
for (; i < 66 + x; ++i) printf(" ");
printf("*\n");
}
printf("\n\n");
/* 輸出余玄, 單調(diào)區(qū)間 x: [0, pi], y: [1, -1] */
for (y = 1; y >= -1; y -= 0.1) {
x = (int)(acos(y) * 10);
for (i = 0; i <= 64; ++i) {
if (i == x || i == 64 - x) {
printf("*");
} else {
printf(" ");
}
}
printf("\n");
}
}