- 开博第一天聊点最近遇到的一个问题
-
-
-
- 在屏幕上显示0-360度的cos(x)曲线与直线f(x)=45*(y-1)+31的迭加图形。
其中cos(x)图形用“*”表示,f(x)用“+”表示,在两个图形相交的点上则用f(x)图形的符号。
其实该图画的绘制,需要调用math.h头文件,进行计算和绘画。当余弦曲线和直线相交时,
则其x,y值相同,代码如下:
-
-
-
-
- #include <stdio.h>
- #include <math.h>
-
- int main()
- {
- double y;
- int x,m,n,yy;
- #// for(y=0; y<=2; y+=0.1) /*第8行能否代替第9行与第11行而不使用yy变量*/
- for(yy=0; yy<=20; yy++) /* 代替的结果就是代码只打出20行 */
- { /* 而原代码打出21行 */
- y = 0.1 * yy; /* 为何最后一行没有进 if */
- m = acos(1-y)*10; / 求解!!!比心!!! /
- n = 45 * (y-1) + 31;
- for(x=0; x<=62; x++)
- {
- if(x==m && x==n)
- printf("+");
- else if(x == n)
- printf("+");
- else if(x==m || x == 62-m)
- printf("*");
- else
- printf(" ");
- }
-
- printf("\n");
- }
- return 0;
- }
由于是Linux操作系统,gcc编译时默认不追加对math的库函数引用,
因此使用 gcc -lm 2.c
因此使用 gcc -lm 2.c
查warning用 gcc -Wall 2.c