参考代码如下:
成都创新互联是一家专业从事成都网站制作、成都网站建设的网络公司。作为专业的建站公司,成都创新互联依托的技术实力、以及多年的网站运营经验,为您提供专业的成都网站建设、成都全网营销推广及网站设计开发服务!
函数头文件CalC.h
double arround(double x[],double y[],int p);
函数定义文件CalC.c
#include math.h
double arround(double x[],double y[],int p)
{
int i;
double C=0; //周长
double l_p_i; // 第i条边长度
for(i=0;ip;i++)
{
l_p_i = sqrt((y[i+1]-y[i])*(y[i+1]-y[i]) + (x[i+1]-x[i])*(x[i+1]-x[i]));
printf("第%d条边长=%f\n",i+1,l_p_i);
C+=l_p_i;
}
return C;
}
主文件main.c
#include stdio.h
#include "CalC.h"
int main(void)
{
double x[3] = {0.0,4.0,4.0};
double y[3] = {0.0,0.0,3.0};
int p=3;
double C=0.0; //周长
C = arround(x,y,p);
printf("C=%f\n", C);
return 0;
}
效果图
点的坐标的话你可以使用结构体struct,里面分别定义横纵坐标,随机点你去找下rand的用法吧。
#include stdio.h
#include math.h
struct Point
{
double x, y;
};
/** Calculate the distance of two points. */
double distance(const struct Point *a, const struct Point *b)
{
return sqrt((a-x-b-x)*(a-x-b-x)+(a-y-b-y)*(a-y-b-y));
}
int main()
{
struct Point a, b;
printf("Please input the first point: ");
scanf("%lf%lf", a.x, a.y);
printf("Please input the second point: ");
scanf("%lf%lf", b.x, b.y);
printf("The distance of the two point is %f.\n", distance(a, b));
return 0;
}
说明:
1、distance() 函数的两个参数 const struct Point *a 和 b 使用了 const 修饰,是表示 a 和 b 在函数执行过程中不会被修改;这样即使函数体内部写错,修改了 a 和 b 的值,编译也不会通过。
2、对 double,scanf 用 %lf,printf 用 %f。
以上。
#include "Conio.h"
#include "graphics.h"
#define closegr closegraph
void initgr(void) /* BGI初始化 */
{
int gd = DETECT, gm = 0; /* 和gd = VGA,gm = VGAHI是同样效果 */
registerbgidriver(EGAVGA_driver);/* 注册BGI驱动后可以不需要.BGI文件的支持运行 */
initgraph(gd, gm, "");
}
void DrawCoord();
void Drawstg();
void Drawcurve();
int main(void)
{
initgr(); /* BGI初始化 */
DrawCoord();
Drawstg();
Drawcurve();
getch(); /* 暂停一下,看看前面绘图代码的运行结果 */
closegr(); /* 恢复TEXT屏幕模式 */
return 0;
}
void DrawCoord() /*画坐标系*/
{
line(50,40,50,400); /*y轴*/
line(50,400,600,400); /*x轴*/
line(50,40,45,50); /*箭头*/
line(50,40,55,50);
line(600,400,590,395);
line(600,400,590,405);
outtextxy(35,45,"y");
outtextxy(590,410,"x");
outtextxy(40,410,"O");
}
void Drawstg() /*画标尺*/
{
int x,y,i;
x=50,y=400;
for(i=0;i17;i++)
{
line(x+5,y,x,y);
y-=20;
}
x=50,y=400;
for(i=0;i26;i++)
{
line(x,y-5,x,y);
x+=20;
}
}
void Drawcurve()/*画图示例*/
{
line(50,400,500,400-250);
}
acos( ) 的形参当然有范围,-1,至1,闭区间,基本的数学知识,如果朝界控制台会显示-1.#IND,表示数据超界;关于坐标的函数当然有,需要用到结构体COORD,以及头文件windows.h 具体代码如下:
#include windows.h
#include stdio.h
void gotoxy(int x,int y)
{
COORD coord;
coord.X=x;
coord.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);
}
void main()
{
gotoxy(50,60);
printf("I LOVE YOU");
}
这个程序就实现了移动光标到指定位置,然后输出指定的内容。