FILE* fp = NULL; if ((fp = fopen("shuju3.txt", "r")) != NULL) { int i, j; for (i = 0; i < 3; i++) { for (j = 0; j < 200; j++) { fscanf(fp, "%lf", &data[i][j]); fseek(fp, 1, 1); } } } else printf("文件不存在"); for (j = 0; j < 200; j++) { DVe[j] = data[0][j]; DVn[j] = data[1][j]; DVv[j] = data[2][j]; } //////////////////////////////////////////////////////////////////////////////////////////////////////// double T = 0.1; double XE[NN]; double YN[NN] = { 0 }; XE[0]=0; for (i = 1; i < NN; i++) { XE[i] = XE[i - 1] + (DVe[i - 1] + DVe[i]) * 0.05; YN[i] = YN[i - 1] + (DVn[i - 1] + DVn[i]) * 0.05; } for循环采用子函数形式表达
时间: 2023-08-27 17:03:58 浏览: 87
好的,那么你想把这段代码改写成采用函数的形式来表达,是吗?那么你可以将这段代码封装在一个函数中,函数的参数为文件名和数据数组,函数返回值为是否成功读取文件。具体代码可以像下面这样:
```c
int readDataFromFile(const char* filename, double data[][200])
{
FILE* fp = NULL;
if ((fp = fopen(filename, "r")) != NULL)
{
int i, j;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 200; j++)
{
fscanf(fp, "%lf", &data[i][j]);
fseek(fp, 1, 1);
}
}
fclose(fp);
return 1; // 返回1表示成功读取文件
}
else
{
printf("文件不存在");
return 0; // 返回0表示文件不存在
}
}
void calculateXY(double DVe[], double DVn[], double XE[], double YN[], int NN, double T)
{
int i;
XE[0] = 0;
for (i = 1; i < NN; i++)
{
XE[i] = XE[i - 1] + (DVe[i - 1] + DVe[i]) * T / 2;
YN[i] = YN[i - 1] + (DVn[i - 1] + DVn[i]) * T / 2;
}
}
```
这样你就可以调用 `readDataFromFile` 函数来读取文件并将数据存储到数组中,然后调用 `calculateXY` 函数来计算X和Y的值了。
阅读全文