Ayuda para sumar los números de dos filas en un archivo
Publicado por juan (13 intervenciones) el 16/04/2020 00:52:50
Buenas,
como podria hacer 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
como podria hacer 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#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 al abrir el fichero. " << 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 << "Dato no valido en el fichero " << sumasFich << std::endl;
return 1;
}
inFich >> col2;
if(in.eof()){
std::cout << "FICHERO " << sumasFich << " INCOMPLETO. " ;
return 1;
}
if(in.fail()){
std::cout << "Dato no valido en el fichero " << sumasFich << std::endl;
return 1;
}
columna1.push_back(co1);
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;
}
Valora esta pregunta


0