将文本文件中的数据读取到一个二维数组中,求出这些数据的中位数,然后求所有数据与中位数的差值的绝对值和,并求出和的最小值,最后把程序运行的结果写到一个txt文件中
2013-08-08 10:50
661 查看
#include<iostream> #include<fstream> #include <string> #include <sstream> using namespace std; ofstream outFile("final.txt");//写到.txt文件中。 float zws(float **a, const int start1,const int end1,const int start2,const int end2) { const int sum=(end1-start1+1)*(end2-start2+1); float* b = new float[sum + 1]; float temp; int n = 0; float middle; float sum1 = 0.0,sum2 = 0.0; for(int i = start1;i<=end1;i++)//将二维数组里的值放到一个一维数组中。 for(int j = start2; j <= end2; j++, n++) b = a[i][j]; //下面对一维数组里的值由小到大进行排序。 for(int i = 0;i < sum;i++) for(int j = 0;j < sum-1 - i;j++) if(b[j] > b[j+1]) { temp = b[j]; b[j] = b[j+1]; b[j+1] = temp; } //求中位数. if(sum%2 == 1)//奇数 { middle = b[sum/2 + 1]; outFile << "奇数中位数为:" << middle << endl; } else //偶数 { middle = (b[sum/2 + 1]+b[sum/2])/2; outFile << "偶数中位数为:" << middle << endl; } for(int i = 0; i < sum; i++) { if(b[i] >= middle) { sum1 += 3*(b[i] - middle); sum2 += b[i] - middle; } else { sum1 += middle - b[i]; sum2 += middle - b[i]; } }; //cout << "填挖土石所需的总费用为:" << 900*sum1 << endl; outFile << "填挖土石所需的总费用为:" << 900*sum1 << endl; float u = 900*sum2; delete b; return u; } int main() { //动态申请二维数组 float** a; a = new float*[31]; for(int i=0; i<31; i++) a[i] = new float [51]; ifstream fin("result.txt");//打开文件 //读入数字 for(int i = 0; i <= 30; i++) for(int j = 0; j <= 50; j++) fin >> a[i][j]; fin.close(); float min = zws(a,0,26,0,19); float temp = 0.0; for(int i = 0; i <= 4; i++) { for(int j = 0; j <= 31; j++) { outFile << "****************************************" << endl; outFile << "i=" << i << "\t"<< "j=" << j << endl; outFile << "总土石方量为 = " << zws(a, i, i+26, j, j+19) << endl; temp = zws(a, i, i+26, j, j+19); if(temp < min) min = temp; } } outFile << "***************************************" << endl; outFile << "总土石方量最小值为:" << min << endl; system("pause"); for(int i = 0; i <= 30; i++) delete[]a[i]; delete []a; return 0; }
输出结果:
相关文章推荐
- 从一个名为 in_file.txt 的文本文件中读取单词,然后把每个词写到一个名为out_file.txt的输出文件中 并且每个词之间用空格分开
- 现在我要写一个定时程序定时读取该目录下的所有txt文件到数据库,并把这些txt文件转移到另外一个目录
- 编写一个程序,它打开一个文本文件,逐个字符地读取该文件,直到到达文件末尾,然后指出该文件中包含多少个字符
- C#控制台控制台将一个文件夹中的所有txt文件中的数据读取出来
- 编写一个程序,它读取一个文件以判断其中的字节数,然后使用0覆盖所有的字节
- java小程序从数据库中(表)中读取数据然后创建文件夹生成txt文件
- 编写一个程序,一行行地读取输入行,直至到达文件尾。算出每行输入行的长度,然后把最长的那行打印出来。为了简单起见,你可以假定所有的输入行均不超过1000个字符
- 编写一个程序,一行行地读取输入行,直至到达文件尾。算出每行输入行的长度,然后把最长的那行打印出来。为了简单起见,你可以假定所有的输入行均不超过1000个字符
- 把一个文件中所有文件名或者文件路径读取到一个txt文件,然后在matlab中读取
- C#控制台控制台将一个文件夹中的所有txt文件中的数据读取出来
- 编写一个程序,一行行地读取输入行,直至到达文件尾。算出每行输入行的长度,然后把最长的那行打印出来。为了简单起见,你可以假定所有的输入行均不超过1000个字符。
- 设计一个学生类,其中包含学号、姓名、成绩等数据成员,创建学生对象并且倒入到文件file.txt,然后由文件读取到另一个学生对象并输出,试编程实现。
- 从数据库中读取表中数据然后写到txt文件中
- c/c++中数据输出到文件名有变量的文件中或多个程序运行结果输出到同一个文件中的方法
- 在网上找了一个读取文件夹下面的所有文件到txt的code 已验证
- 最近写了一个从数据库中读取文件并写在txt文件中(当数据过多的时候写在多个txt文件中)
- 监测程序详细介绍,快捷键的设置;txt文件里面一行行的读取、删除、添加字符串等;根据程序路径名以及程序名判断程序是否在运行;
- 一个简单的从txt文件中读取数据插入数据库
- 用mingw编译C++工程;程序里面的cout<<"aaa";cmd运行c++程序,aaa内容在控制台不显示,如何将aaa输出到控制台屏幕并将控制台内容写到一个文件中。
- 编写一个程序,把指定目录下的所有的带.java文件都拷贝到另一个目录中,拷贝成功后,把后缀名是.java的改成.txt。