正弦曲線の文字イメージを出力する次のコードがあります。
#include <stdio.h>
#include <math.h>
/**show the image of sine curve*/
main()
{
double y;
int m, x;
for (y = 1; y >= 0; y -= 0.1) {
m = asin(y) * 10;
for (x = 1; x < m; x++)
printf(" ");
printf("*");
for (; x < 31 - m; x++)
printf(" ");
printf("*\n");
}
for (y = 0; y <= 1; y += 0.1) {
m = 31 + asin(y) * 10;
for (x = 1; x < m; x++)
printf(" ");
printf("*");
for (; x < 93 - m; x++)
printf(" ");
printf("*\n");
}
}
生成される出力は次のとおりです。
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
ご覧のとおり、私のコードの結果は連続的ではありません。コードのどこが間違っているか知りたいです。一方で、誰かが私により良い解決策を教えてくれれば幸いです。