Сообщение от Part!zan:
Имхо, код должен быт в первую очередь рабочим, а только уже потом комментированным и красивым. Метросексуалы в программировании не нужны.
#include "stdafx.h" #include <fstream> using namespace std; ifstream input("input.txt"); ofstream output("output.txt"); double Hz[1000]; char words[1000]; int n; double _min, _max; int main(int argc, char* argv[]) { input >> n; input >> Hz[0]; _min = 30.0; _max = 4000.0; char bufer[20]; for(int i=1;i<n;i++){ input >> Hz[i] >> bufer; double midHz=(Hz[i]+Hz[i-1])/2; if(bufer[0]=='c'){ if(Hz[i]>Hz[i-1]){ if(_min<midHz){ _min=midHz; } } else{ if(_max>midHz){ _max=midHz; } } } else if(bufer[0]=='f'){ if(Hz[i]>Hz[i-1]){ if(_max>midHz){ _max=midHz; } } else{ if(_min<midHz){ _min=midHz; } } } } output << (double)_min; if((double)_min==(int)_min){output << ".0";} output << " " << (double)_max; if((double)_max==(int)_max){output << ".0";} return 0; }
Сообщение от :
3
440.0005
220.0006 closer
300.009 further
if((double)_min-(int)_min<1e-6)
Сообщение от :
При выполнении бинарных операций производятся преобразования по умолчанию для приведения операндов к одному и тому же типу, который потом используется как тип результата:
если один из операндов имеет тип long double, другой тоже преобразуется в long double;
в противном случае, если один операнд имеет тип double, то второй операнд преобразуется к типу double;
в противном случае, если один операнд имеет тип float, то второй операнд преобразуется к типу float;
в противном случае над обоими операндами производится интегральное продвижение, а именно: значения типов char, signed char, unsigned char, short int и unsigned short int преобразуются в int, если int может представить все значения исходных типов, в противном случае они преобразуются в unsigned int; bool преобразуется в int.
затем если один операнд имеет тип unsigned long, то второй операнд преобразуются к типу unsigned long;
в противном случае, если один из операндов относится к типу long int, а другой к типу unsigned int, то если long int может представить все значений типа unsigned int, unsigned int преобразуется в long int, иначе оба операнда преобразуются в unsigned long int;
в противном случае, если один операнд имеет тип long int, то второй операнд преобразуются к типу long int;
в противном случае, если один операнд имеет тип unsigned int, то второй операнд преобразуются к типу unsigned int;
в противном случае оба операнда имеют тип int.
Сообщение от :
#include <iostream>
#include <fstream>
using namespace std;
ifstream input("input.txt");
double Hz[1000];
int main(int argc, char* argv[])
{
input >> Hz[0];
cout << Hz[0] << endl;
system("PAUSE");
return 0;
}
Сообщение от :
67.3576587
Сообщение от :
67.3577