64,654
社区成员
发帖
与我相关
我的任务
分享
#include<fstream>
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
ifstream fin("G:\\MeKong\\20170226再分析、降雨数据分析\\PrekChik\\原始实测降雨量.TXT");
ofstream fout("G:\\MeKong\\20170226再分析、降雨数据分析\\PrekChik\\实测面降雨量.TXT");
float arr[32509][6];
float arr1[32508];
for (int i = 0; i < 32509; i++)
{
for (int j = 0; j < 6; j++)
fin >> arr[i][j];
}
fin.close();
fout << "年 " << "月 " << "日 " << "月平均降水量" << endl;
for (int m = 1; m < 32509; m++)
{
for (int n = 0; n < 3; n++)
{
fout << arr[m][n] << " ";
}
float sum = 0;
int num = 0;
for (int k = 3; k < 6; k++)
{
if (fabs(arr[m][k] + 99.9) >= 0.000001)
{
sum += arr[m][k];
num++;
}
}
arr1[m - 1] = sum / num;
fout << arr1[m - 1] << endl;
}
fout.close();
return 0;
}
改成这个样子输出仍然有问题[/quote]
打个断点看看,到底是把哪些数加到sum上了#include<fstream>
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
ifstream fin("G:\\MeKong\\20170226再分析、降雨数据分析\\PrekChik\\原始实测降雨量.TXT");
ofstream fout("G:\\MeKong\\20170226再分析、降雨数据分析\\PrekChik\\实测面降雨量.TXT");
float arr[32509][6];
float arr1[32508];
for (int i = 0; i < 32509; i++)
{
for (int j = 0; j < 6; j++)
fin >> arr[i][j];
}
fin.close();
fout << "年 " << "月 " << "日 " << "月平均降水量" << endl;
for (int m = 1; m < 32509; m++)
{
for (int n = 0; n < 3; n++)
{
fout << arr[m][n] << " ";
}
float sum = 0;
int num = 0;
for (int k = 3; k < 6; k++)
{
if (fabs(arr[m][k] + 99.9) >= 0.000001)
{
sum += arr[m][k];
num++;
}
}
arr1[m - 1] = sum / num;
fout << arr1[m - 1] << endl;
}
fout.close();
return 0;
}
改成这个样子输出仍然有问题#include<fstream>
#include<iostream>
using namespace std;
int main()
{
ifstream fin("G:\\MeKong\\20170226再分析、降雨数据分析\\PrekChik\\原始实测降雨量.TXT");
ofstream fout("G:\\MeKong\\20170226再分析、降雨数据分析\\PrekChik\\实测面降雨量.TXT");
float arr[32509][6];
float arr1[32508];
for (int i = 0; i < 32509; i++)
{
for (int j = 0; j < 6; j++)
fin >> arr[i][j];
}
fin.close();
fout << "年 " << "月 " << "日 " << "月平均降水量" << endl;
for (int m = 1; m < 32509; m++)
{
for (int n = 0; n < 3; n++)
{
fout << arr[m][n] << " ";
}
if ((arr[m][3] != -99.9) && (arr[m][4] != -99.9) && (arr[m][5] != -99.9))
arr1[m - 1] = (arr[m][3] + arr[m][4] + arr[m][5]) / 3;
else if ((arr[m][3] == -99.9) && (arr[m][4] != -99.9) && (arr[m][5] != -99.9))
arr1[m - 1] = (arr[m][4] + arr[m][5]) / 2;
else if ((arr[m][3] != -99.9) && (arr[m][4] == -99.9) && (arr[m][5] != -99.9))
arr1[m - 1] = (arr[m][3] + arr[m][5]) / 2;
else if ((arr[m][3] != -99.9) && (arr[m][4] != -99.9) && (arr[m][5] == -99.9))
arr1[m - 1] = (arr[m][3] + arr[m][4]) / 2;
else if ((arr[m][3] == -99.9) && (arr[m][4] == -99.9) && (arr[m][5] != -99.9))
arr1[m - 1] = arr[m][5];
else if ((arr[m][3] == -99.9) && (arr[m][4] != -99.9) && (arr[m][5] == -99.9))
arr1[m - 1] = arr[m][4];
else if ((arr[m][3] != -99.9) && (arr[m][4] == -99.9) && (arr[m][5] == -99.9))
arr1[m - 1] = arr[m][3];
else if ((arr[m][3] == -99.9) && (arr[m][4] == -99.9) && (arr[m][5] == -99.9))
arr1[m - 1] = -99.9;
fout << arr1[m - 1] << endl;
}
fout.close();
return 0;
}