c语言。文件问题。在线等!!!好的追加悬赏
文件名为data.txt内容为:点的数目(换行)第一个点的x坐标,第二个点的x坐标,。。。最后一个点的x坐标(换行)第一个点的y坐标,第二个点的y坐标,。。。最后一个点的...
文件名为 data.txt
内容为:
点的数目(换行)
第一个点的x坐标,第二个点的x坐标,。。。最后一个点的x坐标(换行)
第一个点的y坐标,第二个点的y坐标,。。。最后一个点的y坐标(换行)
其中,点的数目是整数,坐标是实数
读取文件之前点的数目未知(就是用malloc),求从第一个点按顺序连接到最后一个点的线的总长。写出程序。 展开
内容为:
点的数目(换行)
第一个点的x坐标,第二个点的x坐标,。。。最后一个点的x坐标(换行)
第一个点的y坐标,第二个点的y坐标,。。。最后一个点的y坐标(换行)
其中,点的数目是整数,坐标是实数
读取文件之前点的数目未知(就是用malloc),求从第一个点按顺序连接到最后一个点的线的总长。写出程序。 展开
展开全部
#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);
}
没跑过,你先试下
#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年没写代码了,你再试试看
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询