elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con loop while
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Problema con loop while  (Leído 5,824 veces)
miketru

Desconectado Desconectado

Mensajes: 235



Ver Perfil
Problema con loop while
« en: 11 Septiembre 2010, 02:34 am »

Ok, tengo un codigo, necesito encontrar los numeros mas grandes y mas chicos de un 2 .txt (un numero por linea y un espacio entre cada linea) ej:
1

2

3

Asi estaría el txt, el problema es que en mi codigo siempre muestra el ultimo numero no el mas grande... alguien me puede ayudar?

Aqui está el codigo:
Código:
#include "stdafx.h"
#include <fstream>
#include <iostream>

using namespace System;
using namespace std;

int main(){

ifstream archivo1;
ifstream archivo2;

archivo1.open("texto1.txt");
archivo2.open("texto2.txt");

int max1, max2, min1, min2, var1, var2, n1;

cout << "Se encontrara el numero mas grande de la lista" << endl;

while(!archivo1.eof()){
archivo1>>var1;
if(var1>max1);
max1=n1;}
cout << "El valor maximo es: " << max1 << endl;

while(archivo2>>var1){
archivo2>>var2;
if(var2>max2);
max2=var2;}
cout << "El valor maximo es: " << max2<< endl;


system ("PAUSE");



En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Problema con loop while
« Respuesta #1 en: 11 Septiembre 2010, 03:19 am »

No se nada de C++, pero por lo menos lo intente... :p
Código
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5. int main(){
  6.  ifstream archivo2;
  7.  
  8.  archivo2.open("Archivo2.txt");
  9.  
  10.  int max2 = 0; int var2 = 0;
  11.  
  12.  cout << "Se encontrara el numero mas grande de la lista" << endl;
  13.  
  14.  while(!archivo2.eof()){
  15.    archivo2>>var2;
  16.    if(var2 >= max2){
  17.      max2 = var2;
  18.    }
  19.  }
  20.  cout << "El valor maximo es: " << max2 << endl;
  21.  system ("pause");
  22. }
Archivo2.txt
Código
  1. 7
  2.  
  3. 8
  4.  
  5. 9
  6.  
  7. 10
  8.  
  9. 20
  10.  
  11. 12
Salida:
Código
  1. Se encontrara el numero mas grande de la lista
  2. El valor maximo es: 20
  3. Presione una tecla para continuar . . .


« Última modificación: 11 Septiembre 2010, 03:23 am por Shell Root » En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
miketru

Desconectado Desconectado

Mensajes: 235



Ver Perfil
Re: Problema con loop while
« Respuesta #2 en: 11 Septiembre 2010, 03:42 am »

Copie tu código en el Vc++ y le agregue #include stdafx.h que es la que te pide a fuerza... y lo ejecuto y se queda en el primer cout... y ahí se atora... y si dices que a ti si te funcionó... entonces está haciendo algo mal el programa? :S porque según yo, mi código también está bien...
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Problema con loop while
« Respuesta #3 en: 11 Septiembre 2010, 03:55 am »

mmm fijate bien en la linea, si es el nombre del archivo?
Código
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5. int main(){
  6.  ifstream archivo2;
  7.  
  8.  archivo2.open("Archivo2.txt");
  9.  
  10.  int max2 = 0; int var2 = 0;
  11.  
  12.  cout << "Se encontrara el numero mas grande de la lista" << endl;
  13.  
  14.  while(!archivo2.eof()){
  15.    archivo2>>var2;
  16.    if(var2 >= max2){
  17.      max2 = var2;
  18.    }
  19.  }
  20.  cout << "El valor maximo es: " << max2 << endl;
  21.  system ("pause");
  22. }
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
miketru

Desconectado Desconectado

Mensajes: 235



Ver Perfil
Re: Problema con loop while
« Respuesta #4 en: 11 Septiembre 2010, 04:13 am »

No me habia dado cuenta de que no pusiste el mismo nombre que yo. Gracias.

Y una ultima preugnta, para obtener el numero mas chico, siempre me da cero sabes porque?
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Problema con loop while
« Respuesta #5 en: 11 Septiembre 2010, 04:43 am »

Asi,
Código
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5. int main(){
  6.  ifstream archivo2;
  7.  
  8.  archivo2.open("Archivo2.txt");
  9.  
  10.  int min1 = 0; int var1 = 0;
  11.  
  12.  cout << "Se encontrara el numero mas grande de la lista" << endl;
  13.  
  14.  archivo2>>min1;
  15.  while(!archivo2.eof()){
  16.    archivo2>>var1;
  17.    if(var1 < min1){
  18.      min1 = var1;
  19.    }
  20.  }
  21.  
  22.  cout << "El valor maximo es: " << min1 << endl;
  23.  system ("pause");
  24. }
Archivo2.txt
Código
  1. 7
  2.  
  3. 8
  4.  
  5. 9
  6.  
  7. 1
  8.  
  9. 10
  10.  
  11. 20
  12.  
  13. 12
Resultado:
Código
  1. Se encontrara el numero mas grande de la lista
  2. El valor maximo es: 1
  3. Presione una tecla para continuar . . .
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
miketru

Desconectado Desconectado

Mensajes: 235



Ver Perfil
Re: Problema con loop while
« Respuesta #6 en: 11 Septiembre 2010, 05:16 am »

Ya vi el problema. es que tengo 4 whiles... y siempre los ultimos 2 me marcan 0... pero por separado los 4 funcionan... saben porque es esto?
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Problema con loop while
« Respuesta #7 en: 11 Septiembre 2010, 05:19 am »

jajaja mostrad el codigo, y creo que se podria reducir a 2 bucles.
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
miketru

Desconectado Desconectado

Mensajes: 235



Ver Perfil
Re: Problema con loop while
« Respuesta #8 en: 11 Septiembre 2010, 05:20 am »

Ya decía yo que lo estaba haciendo bien ¬¬ jajajaja

Código:
#include "stdafx.h"
#include <iostream>
#include <fstream>
 
using namespace std;
int main(){
  ifstream archivo2;
  ifstream archivo1;

  archivo2.open("texto2.txt");
  archivo1.open("texto1.txt");
 
  int min2 = 0; int var2 = 0;

 
  archivo2>>min2;
  while(!archivo2.eof()){
    archivo2>>var2;
    if(var2 < min2){
      min2 = var2;
    }
  }
 


   int min1 = 0; int var1 = 0;
 
  
 
  archivo1>>min1;
  while(!archivo1.eof()){
    archivo1>>var1;
    if(var1 < min1){
      min1 = var1;
    }
  }
 

  if(min1<min2)
 cout << "El numero mas chico de los dos archivos es: " << min1 << endl;
  else
 cout << "El numero mas chico de los dos archivos es: " << min2 << endl;




  int max2 = 0; int var3 = 0;
   while(!archivo2.eof()){
    archivo2>>var3;
    if(var3 >= max2){
      max2 = var3;
    }
  }
  
  int max1 = 0; int var4 = 0;

   while(!archivo1.eof()){
    archivo1>>var4;
    if(var4 >= max1){
      max1 = var4;
    }
  }

   if(max1>max2)
 cout << "El numero mas grande de los dos archivos es: " << max1 << endl;
  else
 cout << "El numero mas grande de los dos archivos es: " << max2 << endl;

 
 
  system ("pause");
}
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Problema con loop while
« Respuesta #9 en: 11 Septiembre 2010, 05:29 am »

Ahora no tengo cabeza para pensar en como reducir los bucles, pero, puedo decirte esto, estas usando mas variables de las que necesitas. Por ejemplo,
Código
  1.  if(min1<min2)
  2.      cout << "El numero mas chico de los dos archivos es: " << min1 << endl;
  3.  else
  4.      cout << "El numero mas chico de los dos archivos es: " << min2 << endl;
Podrias usar la misma variable para los 2 archivos. Y en este caso, que pasaria si las variables fueran iguales?

Ponedle nombres nemotecnicos a las variables, porque asi como las tienes, es dificil de interpretar a cual bloque de codigo pertenece.
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
modprobe loop en Fedora7
GNU/Linux
liveya1234 0 1,819 Último mensaje 18 Marzo 2011, 08:23 am
por liveya1234
Ayuda con For Loop y un TextBox
.NET (C#, VB.NET, ASP)
GonzaFz 7 4,361 Último mensaje 24 Mayo 2012, 23:52 pm
por $Edu$
Problema con loop
Programación C/C++
jaxoR 7 3,158 Último mensaje 2 Marzo 2014, 21:30 pm
por jaxoR
[Resuelto] Problema con while (Loop)
Programación C/C++
jaxoR 7 2,950 Último mensaje 28 Abril 2014, 03:27 am
por jaxoR
problema con el do while loop
Programación C/C++
josephb401 3 1,887 Último mensaje 4 Abril 2016, 19:03 pm
por crack81
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines