Witam mam taki problem bo ja sobie już z nim nie radzę w którym miejscu jest powód że mój program się zapętla wiem ,że moja składnia jest paskudna jak przysłowiowa teściowa. ale to dlatego że mam czas na gardle... Z góry dziękuję za pomoc :)
#include <fstream>
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
#include <cstring>
#include <cmath>
#include <stdlib.h>
#define EXIT_MULTI 2;
using namespace std;
double toDouble(string& var)
{
double res;
//char abc=var.str_c();
if(strcmp(var.c_str(),"F"))
{
res=96485.3399;
return res;
}
if(strcmp((var.c_str()),"pi")){
res=3.1415926536;
return res;
}
if(strcmp((var.c_str()),"c")){
res=299792458;
return res;
}
if(strcmp((var.c_str()),"G")){
res=(299792458*pow(10,-11));
return res;
}
istringstream iss(var);
iss >> res;
return res;
}
int main(int argc, char *argv[])
{
fstream plik=argv[1];
string tmp;
vector<double> tablica;
vector<double> a;
vector<double> b;
vector<double> roznica;
int k;
int i;
float min;
// vector<double> tablica2;
plik.open(argv[1], ios::in | ios::binary );
if(plik.good()){
while(getline(plik, tmp)){
tablica.push_back(toDouble(tmp));
// tablica2.push_back(toDouble(tmp));
}
plik.close();
}
else return EXIT_FAILURE;
// cout << tablica[2];
//for(int i=0;i<=sizeof(tablica); i++)
//tablica2[i] = tablica[i] ;
vector<double> najmniejsz_skladnik;
vector<double> najmniejsz_skladnik2;
vector<double> najmniejsza_roznica;
for (i = 0 ; i<=(tablica.size()-1) ; i++ ){
for ( k = 0 ; k<=(tablica.size()-1) ; k++ ){
//cout<<k<<endl;
double static min=0;
min=abs((tablica[i]-tablica[k]));
if(min>abs((tablica[i+1]-tablica[k+1]))){
min=abs((tablica[i+1]-tablica[k+1]));
}
//if
//cout<<k<<endl;
if (min==(abs((tablica[i+1]-tablica[k+1]))))
{
najmniejsz_skladnik.push_back(tablica[i]);
najmniejsz_skladnik2.push_back(tablica[k]);
najmniejsza_roznica.push_back(min);
}
}
// cout<<k<<endl;
}
cout<<""<<endl;
if(najmniejsza_roznica.size()>1){
for ( int x=0 ; x <= najmniejsza_roznica.size();x++){
if (a[x] > b[x] ){
cout.precision(3);
cout << "(";
cout << a[x];
cout << b[x];
cout << ") " ;
cout << "lub ";
}
else{ cout.precision(3);
cout << "(" ;
cout << b[x] ;
cout << ",";
cout << a[x];
cout << ") ";
cout << "lub ";}
return EXIT_MULTI;}
}
if (najmniejsza_roznica.size()==1){
for(int x=0;x<=najmniejsza_roznica.size();x++){
if(a[x]>b[x]){
cout.precision(3);
cout<<"(";
cout<<a[x];
cout<<",";
cout<<b[x];
cout<<") ";
}
else{ cout.precision(3);
cout<<"(";
cout<<b[x];
cout<<",";
cout<<a[x];
cout<<") ";
}
return EXIT_SUCCESS;}
}
}