Dev - C++ - AYUDA PROBLEMA CON C++

 
Vista:
sin imagen de perfil
Val: 22
Ha disminuido su posición en 2 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

AYUDA PROBLEMA CON C++

Publicado por juan (13 intervenciones) el 13/05/2020 18:07:06
Hola, a ver si alguien puede ayudarme con este ejercicio.
Hay que leer los datos de un fichero de dos columnas coordenadas.txt, pedir por consola que el usuario introduzca un numero (n) y debe hacer la siguiente operación n*(x+y).
Por consola debe imprimir el resultado máximo que se obtiene al hacer esa operación con todas las coordenadas del fichero y los puntos en los que se obtiene ese resultado, si hay puntos repetidos solo tiene que salir una vez por consola.
Un ejemplo:
Si n = 1 y el fichero es:
1 1
2 1
4 5
3 6
6 3
8 1
0 0
3 6
4 3
Por consola debería aparecer: " La solucion maxima es 9 y se obtiene en los puntos (4,5), (3,6), (6,3), (8,1)"
Tengo hecho el código pero no consigo que salga por pantalla todos los puntos en los que se consigue ese resultado, solo me sale el ultimo punto en el que se obtiene 9.
Mi codigo es:

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
#include <iostream>
#include <fstream>
#include <vector>
#include <cmath>
 
int main()
{
 double n;
 std::cout << "Valor de n ";
 std::cin >> n;
 
 std::ifstream in("coordenadas.txt",std::ios::in);
 double operacion, op_max, x_max, y_max;
 std::vector<double> x0,y0;
 while(!in.eof()){
  double X,Y;
  in >> X >> Y;
  operacion = n*(X+Y);
  if(operacion > op_max){
   op_max = operacion;
   x_max = X;
   y_max = Y;
   x0.clear();
   y0.clear();
   x0.push_back(X);
   y0.push_back(Y);
  }
  else if(operacion == op_max){
   op_max = operacion;
   x_max = X;
   y_max = Y;
   x0.clear();
   y0.clear();
   x0.push_back(X);
   y0.push_back(Y);
  }
 }
 in.close();
 std::cout << "La solucion maxima es " << op_max << " y se consigue en los puntos (" << x_max << "," << y_max << ")" << std::endl;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder