c语言。文件问题。在线等!!!好的追加悬赏

文件名为data.txt内容为:点的数目(换行)第一个点的x坐标,第二个点的x坐标,。。。最后一个点的x坐标(换行)第一个点的y坐标,第二个点的y坐标,。。。最后一个点的... 文件名为 data.txt
内容为:
点的数目(换行)
第一个点的x坐标,第二个点的x坐标,。。。最后一个点的x坐标(换行)
第一个点的y坐标,第二个点的y坐标,。。。最后一个点的y坐标(换行)

其中,点的数目是整数,坐标是实数
读取文件之前点的数目未知(就是用malloc),求从第一个点按顺序连接到最后一个点的线的总长。写出程序。
展开
 我来答
stelika
2013-02-05 · TA获得超过366个赞
知道答主
回答量:165
采纳率:0%
帮助的人:197万
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
int n,i;
FILE* fp;
double *x,*y,*p,s = .0;
fp = fopen("data.txt", "r");
fscanf(fp, "%d", &n);
x = (double*)malloc(sizeof(double)*n);
y = (double*)malloc(sizeof(double)*n);

p = x;
for(i = 0; i < n; ++i) fscanf(fp, "%lf", p++);
p = y;
for(i = 0; i < n; ++i) fscanf(fp, "%lf", p++);

fclose(fp);
for(i = 0; i < n-1; ++i) s += sqrt(pow((x[i] - x[i+1]),2) + pow((y[i] - y[i+1]),2))

free(x); free(y);
printf("s=%f", s);
}

没跑过,你先试下
更多追问追答
追问
显示很多错误,我在这加了两个*
x = (double*)malloc(sizeof(double)*n);
y = (double*)malloc(sizeof(double)*n);

在free前加了个;
在最前面加了个#include

可以运行了,但是结果应该是错的
追答
我已经改过了,加*的那里我加了,另外输入和输出格式化符刚开始弄错
快3年没写代码了,你再试试看
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式