c语言通过输入起点,中间点,终点坐标计算弧长与夹角的代码,透明标尺那个程序里的。

Python017

c语言通过输入起点,中间点,终点坐标计算弧长与夹角的代码,透明标尺那个程序里的。,第1张

/*c语言通过输入起点,中间点,终点坐标计算弧长与夹角的代码*/

#include<stdio.h>

#include<math.h>

main()

{

float a[3][2],b[1][2],r,R,s,ra,sl /*二维数组的前三行输入三个对应的坐标,数组b计算起终点的中点坐标*/

int i,j /*r记录弦的半长,R记录弧的半径,s记录弦中点到弧中点的距离,ra记录夹角,sl记录弧长*/

for(i=0i<3i++)

{

for(j=0j<2j++)

{

printf("a[%d][%d]=",i+1,j+1)

scanf("%f,%f"&a[i][j])

printf(",")

}

printf("\n")

}

for(i=0i<2i++)

{

b[0][i]=(a[0][i]+a[2][i])/2.0 /*求出弦中点坐标*/

}

r=sqrt((a[2][0]-a[0][0])*(a[2][0]-a[0][0])+(a[2][1]-a[0][1])*(a[2][1]-a[0][1]))/2.0 /*计算弦长并除以2*/

s=sqrt((a[1][0]-b[1][0])*(a[1][0]-b[1][0])+(a[1][1]-b[1][1])(a[1][1]-b[1][1]))

R=(s*s+r*r)/(2.0*s) /*因为有(R-s)2+r2=R2(这个注释中的2表示平方)*/

ra=2.0*(asin(r/R)) /*求出夹角,弧度制*/

sl=R*ra /*求出弧长*/

printf("sl=%f,ra=%f\n",sl,ra)

}

不对,因为C语言,甚至多数的工业界使用的编程语言,数组下标都是从0开始。

正确写法:

scanf(”%s",s)

如果要加下标scanf(”%s", &s[0])

楼下的忘了取地址符号了。还有,你说从终端输入5个字符,终端打成终点,让他以为是从数组的尾端了。

&符号的意思是,给scanf传递它的地址。s[0]不是地址,只是单个变量。

s 能代替 &s[0]是因为,在C语言中,数组名就代表s[0]的地址。

你可以输出printf("%d %d\n", &s[0], s)看结果。