#include <stdio.h> #include <math.h> main() { double y; int x,m; for (y=1;y>=-1;y-=0.1) //y为列方向,值从1到-1,步长为0.1 { m = acos(y)*10; //计算出y对应的弧度m,乘10为图形放大倍数 for (x=1;x<m;x++)printf(" "); printf("*"); //控制打印左侧的*号 for(;x<62-m;x++)printf(" "); printf("*/n"); //控制打印右侧对称的*号 } } /*运行结果如下: -------------------------------------------------------------------------------------- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** Press any key to continue --------------------------------------------------------------------------------------- */ 思考题:如何实现“*”显示0°~360°的sin(x)的曲线? 解答:#include <stdio.h> #include <math.h> main() { double y; int x,m; for (y=1;y>=0;y-=0.1) //y为列方向,值从1到0,步长为0.1 { m = asin(y)*10; //计算出y对应的弧度m,乘10为图形放大倍数 for(x=1;x<m+1;x++)printf(" "); printf("*"); //控制打印左侧的*号 for(;x<32-m;x++)printf(" "); printf("*/n"); //控制打印右侧对称的*号 } for (y=0;y>=-1;y-=0.1) //y为列方向,值从0到-1,步长为0.1 { m = asin(y)*10; //计算出y对应的弧度m,乘10为图形放大倍数 for(x=1;x<33-m;x++)printf(" "); printf("*"); //控制打印左侧的*号 for(;x<64+m;x++)printf(" "); printf("*/n"); //控制打印右侧对称的*号 } } /*运行结果如下: ----------------------------------------------------------------------------------------- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Press any key to continue ------------------------------------------------------------------------------------------ */