Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - gomezjuan

#11
Buenas, tengo que hacer un ejercicio que haga lo siguiente:
1º Leer un fichero que esta formado por dos columnas (desconocemos el numero de filas), asegurarse de que los datos del fichero son numeros reales y de que en la columna 1 y en la 2 hay la misma cantidad de numeros.
2º Sumar los elementos de las filas, por ejemplo:
2 3 --> 2+3=5
1 2 --> 1+2=3
4 1 --> 4 +1 = 5
2 3 -->2 + 3 =5
3º Mostrar por consola el numero mas grande que se obtiene al sumar las columnas y los numeros que se han sumado para alcanzar ese numero, pero si en el fichero hay una fila con los mismos numeros solo debe salir una vez por consola.
Segun el ejemplo anterior en la consola deberia aparecer:
"El número mayor que se obtiene es 5 que se obtiene al sumar: 2 y 3, 4 y 1.

Yo he pensado ir añadiendo a un vector los resultados de las sumas y luego imprimir por consola el mayor, pero no se como puedo hacer esto.
Esto es lo que tengo hecho:
Código (cpp) [Seleccionar]

#include <iostream>
#include <fstream>
#include <vector>
#include <sstream>
#include <cmath>

const char sumasFich[] = "puntos.txt";

int main()
{
std::ifstream in(sumasFich, std::ios::in);
//SI EL FICHERO NO SE PUEDE ABRIR DA ERROR Y FINALIZA
if(!in){
std::cout << "ERROR  " << sumasFich;
return 1;
}

std::vector<double> columna1,columna2;
while(!in.eof()){
double col1, col2;
in >> col1;
if(in.eof())break;
if(in.fail()){
std::cout << "ERROR " << sumasFich << std::endl;
return 1;
}

inFich >> col2;

if(in.eof()){
std::cout << "ERROR " ;
return 1;
}
if(in.fail()){
std::cout << "ERROR" << std::endl;
return 1;
}

columna1.push_back(col1);
columna2.push_back(col2);
}

in.close();
if(columna1.size() == 0){
std::cout << "El fichero " << sumasFich << " esta vacio. ";
return 1;
}

       double Sumas;

for(unsigned int i = 0; i < columna1.size(); i++){
Sumas = columna1[i]+columna2[i]
std::cout << "El resultado mayor es " << Sumas << " se obtiene al sumar "<< columna1[i] << " y " <<
                columna2[i] << std::endl;
}
return 0;
}