c语言中表达n次方可以用pow函数。
成都创新互联公司拥有一支富有激情的企业网站制作团队,在互联网网站建设行业深耕十载,专业且经验丰富。十载网站优化营销经验,我们已为上千家中小企业提供了成都网站设计、成都做网站解决方案,定制制作,设计满意,售后服务无忧。所有客户皆提供一年免费网站维护!
函数原型:double
pow(double
x,
double
y)
功
能:计算x^y的值
返
回
值:计算结果
举例:
double
a;a
=
pow(3.14,
2);
//
计算3.14的平方,并将结果保存在变量a中
注:使用pow函数必须将头文件#include包含进源文件中
/*请不要看完了就走人*/
/*帮帮忙,采纳我的答案!*/
#includestdio.h
#includemath.h
main(){
double
y;
int
x,m,i;
printf("y=sin(x)
[0x2*pi]\n");
for(y=1;y=-1;y-=0.1){
if(y=0){
m=asin(y)*10;
for(x=1;xm;x++)printf("
");
printf("*",m);
for(;x31-m;x++)printf("
");
printf("*\n");}
else{
m=-1*asin(y)*10;
for(i=0;i32;i++)printf("
");
for(x=1;xm;x++)printf("
");
printf("*",m);
for(;x31-m;x++)printf("
");
printf("*\n",m);
}
}
}
此题把数学问题转化为用C语言描述即可,很多画图问题可以使用这种方法。
假设屏幕左上角为坐标轴原点
也就是把我们的屏幕当作第一象限时,代码如下
#include stdio.h
#define MAX 30 // 选定曲线要显示的范围,因为一次函数是一条直线,所以它的显示范围无穷
int main()
{
int x, y;
for (y = 0; y MAX; y++) // 因为我们的光标是向下,向右增长。这里设定y为纵坐标
{
for (x = 0; x MAX; x++)
{
if (y == 2 * x + 5)
{
printf("*");
}
else
{
printf(" "); // 空格,不满足y=2x+5的点
}
}
printf("\n"); // x轴已经到显示范围,所以需要换行。
}
return 0;
}
2. 更换坐标轴原点显示
#include stdio.h
#define MAX 30 // 选定曲线要显示的范围,因为一次函数是一条直线,所以它的显示范围无穷
int main()
{
int x, y;
for (y = 30; y = 0; y--)
{
for (x = 0; x MAX; x++)
{
if (y == 2 * x + 5)
{
printf("*");
}
else
{
printf(" "); // 空格,不满足y=2x+5的点
}
}
printf("\n"); // x轴已经到显示范围,所以需要换行。
}
return 0;
}
在c的标准库中有graphic.h头文件,实现了很多画图函数 比如 lineto, moveto, arc,(函数名可能记错,好久没用了-.-!)
直线:起点加终点就行。
二次曲线,比如抛物线,那就以定长拆分成小直线。双曲线同理。
抛物线,和双曲线用定长拆分,估计很难计算。要是精度要求不高就根据情况改成定x,或者定y偏移的拆分,要是精度要求高那就去找直线拟合曲线的算法或者双圆弧拟合曲线的算法。
这个是玫瑰花程序!你可以借鉴!
#include stdio.h
#include dos.h
#include graphics.h
/*花儿*/
void hua(int x,int y)
{
register i;
setcolor(12);
arc(x+65,y-60,150,350,8);
arc(x+66,y-54,300,470,8);
arc(x+65,y-56,30,230,10);
arc(x+64,y-57,300,460,17);
ellipse(x+73,y-30,250,450,27,40);
ellipse(x+59,y-30,100,290,27,40);
ellipse(x+65,y-40,140,270,20,30);
setfillstyle(SOLID_FILL,5);
floodfill(x+65,y-20,12);
arc(x,y,150,350,12);
arc(x+1,y+8,280,470,12);
arc(x,y+2,30,230,16);
arc(x,y+3,80,240,28);
arc(x+2,y+8,180,330,22);
arc(x-2,y+2,310,460,25);
ellipse(x-12,y+30,120,300,30,40);
ellipse(x+10,y+28,250,423,30,42);
ellipse(x-4,y+10,290,393,30,40);
setfillstyle(SOLID_FILL,4);
floodfill(x+5,y+31,12);
ellipse(x+120,y+5,0,360,15,25);
setfillstyle(SOLID_FILL,15);
floodfill(x+120,y,12);
ellipse(x-70,y+10,0,360,14,20);
setfillstyle(SOLID_FILL,14);
floodfill(x-70,y+10,12);
setcolor(10);
ellipse(x-15,y+32,190,310,30,35);
ellipse(x+16,y+32,235,355,26,35);
ellipse(x,y+35,190,350,43,50);
arc(x,y+82,190,350,6);
setfillstyle(SOLID_FILL,2);
floodfill(x,y+75,10);
ellipse(x+50,y-48,190,320,22,50);
ellipse(x+80,y-48,220,350,22,50);
ellipse(x+65,y-28,180,360,36,50);
floodfill(x+65,y+18,10);
for(i=0;i3;i++)
{
ellipse(x-98,y+100+i,255,371,100,80);
ellipse(x-20,y+30+i,260,358,140,140);
ellipse(x+233,y+20+i,180,218,160,140);
}
ellipse(x+70,y+34,180,233,140,140);
ellipse(x,y+40,205,255,100,120);
ellipse(x+135,y-30,209,249,72,120);
ellipse(x,y+20,263,301,100,120);
ellipse(x+85,y-10,278,305,100,120);
ellipse(x+100,y-62,282,308,90,120);
ellipse(x-50,y-10,277,314,30,120);
ellipse(x+70,y+80,222,266,52,120);
ellipse(x-60,y-45,229,266,52,120);
ellipse(x+79,y-45,229,266,52,120);
ellipse(x+84,y,224,273,52,120);
ellipse(x+110,y+40,240,282,100,120);
ellipse(x+120,y-6,200,340,17,25);
ellipse(x+120,y+7,160,380,17,27);
ellipse(x-70,y+15,140,380,17,20);
}
一般终端窗口的行数是25行,80列。如果用打印符号这种原始愚蠢的方法进行画图,只能在这个区间范围内。少数支持SVGA/XGA的屏幕支持40行,不过不常用。