C++问题:一个简单的程序,望给予纠错

来源:百度知道 编辑:UC知道 时间:2024/05/19 18:36:39
#include<iostream>
#include<fstream>
#include<iomanip>
using namespace std;

int main(){
ifstream in("123.txt");
ofstream out("result.txt");
double numb[30];
int i=0; double max=0;
for(double a;in>>a;){
numb[i]=a;

i++;
if(a>max) max=a;

}
for(i=0;i<30;i++){
double temp=numb[i]/max;
out.setf(ios::fixed);
out.setf(ios::showpoint);

out<<setprecision(5)<<temp<<endl;}
return 0;
}
123.txt
1.568
1.544
1.481
1.373
1.365
1.204
1.05
0.877
0.709
0.533
0.385
0.256
0.146
0.063
0.014
0
0.023
0.074
0.167
0.284
0.416
0.577
0.736
0.891
1.062
1.205
1.338
1.452
1.509
1.552
1.568

这个程序的目的是做物理中处理数据常用的归一处理

老兄,你文件里有31个数据,数组越界,当然出错
#include<iostream>
#include<fstream>
#include<iomanip>
using namespace std;

int main(){
ifstream in("123.txt");
ofstream out("result.txt");
double numb[31];
int i=0; double max=0;
for(double a;in>>a;){
numb[i]=a;

i++;
if(a>max) max=a;

}
for(i=0;i<31;i++){
double temp=numb[i]/max;
out.setf(ios::fixed);
out.setf(ios::showpoint);

out<<setprecision(5)<<temp<<endl;}
return 0;
}

问题就出在C++的输出是cout<<而不是out<<
你的out<<setprecision(5)<<temp<<endl;} 有错