#include<stdio.h>
#include<math.h>
int main()
{double y;
int x,m;
for(y=1;y>=-1;y-=0.1)
{
m=acos(y);
for(x=1;x<m;x++)printf(” “);
printf(“*”);
for(;x<62-m;x++)printf(” “);
printf(“*”);
}
return 0;
}
#include<math.h>
int main()
{double y;
int x,m;
for(y=1;y>=-1;y-=0.1)
{
m=acos(y);
for(x=1;x<m;x++)printf(” “);
printf(“*”);
for(;x<62-m;x++)printf(” “);
printf(“*”);
}
return 0;
}
解决方案
20
在main函数最后加上getchar();
#include<stdio.h> #include<math.h> int main() { double y; int x,m; for(y=1;y>=-1;y-=0.1) { m=acos(y); for(x=1;x<m;x++)printf(" "); printf("*"); for(;x<62-m;x++)printf(" "); printf("*"); } getchar(); return 0; }
2
#include<stdio.h> #include<math.h> int main() { double y; int x,m; for(y=1;y>=-1;y-=0.1) { m=acos(y)*10; for(x=1;x<m;x++)printf(" "); printf("*"); for(;x<62-m;x++)printf(" "); printf("*\n"); } getchar(); return 0; }
40
1.acos返回的是 0 至 π 之间的计算结果,需要乘10才行
2.而且每打印一行(一次大的for循环),你也需要\n来换行
2.而且每打印一行(一次大的for循环),你也需要\n来换行
8
原因是你的控制台一般是80列25行,而你的曲线超过了80列所以自动换行到下一行了引起排版混乱。
假如要绘制函数曲线,需要更改屏幕显示模式的。35×80的显示模式基本不能绘制复杂曲线
假如要绘制函数曲线,需要更改屏幕显示模式的。35×80的显示模式基本不能绘制复杂曲线