题目:多边形周长
题目描述:编写程序,求由键盘按顺时针方向输入n(0<n<=10)个顶点坐标的多边形周长(测试数据已保证当n>2时,各点按输入方向依次连接可构成封闭的n边形)。
输入:第一行输入一个整数,作为n值;以后每行两个浮点数(doulbe),为多边形各顶点的坐标。
输出:多边形的周长,精确到小数点后2位。
样例1:
输入:
4
0 0
0 1
1 1
1 0
输出:4.00
样例2:
输入:
1
2 3
输出:
0.00
样例3:
输入:
2
2 3
2 4
输出:
1.00
65行错了,应该是k不是i,细心哦
问题如下:
第59行:scanf("&lf",&a[i][j]);改成scanf("%lf",&a[i][j]);
第65行中i都改成k
第69行:printf("%.2Lf",d);改成printf("%.2lf",d);%lf中的l小写
代码如下 用DEV C++写的
#include <stdio.h>
#include <math.h>
double f(double x1,double y1,double x2,double y2){
double sum=0;
sum=sqrt((x1-x2)(x1-x2)+(y1-y2)(y1-y2));
return sum;
}
int main(){
int n=5,i,j;long double d=0;
//scanf("%d",&n);
double a[10][2];
for(i=0;i<n;i++){
for(j=0;j<2;j++){
scanf("&lf",&a[i][j]);
}
}
if(n!=2){
for(int k=0;k<n-1;k++){
d=d+f(a[i][0],a[i][1],a[i+1][0],a[i+1][1]);
}
}d=d+f(a[0][0],a[0][1],a[n-1][0],a[n-1][1]);
printf("%.2Lf",d);
return 0;
}