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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  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 6,317 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.724


<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

Te vendería mi talento por poder dormir tranquilo.
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.724


<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

Te vendería mi talento por poder dormir tranquilo.
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.724


<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

Te vendería mi talento por poder dormir tranquilo.
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.724


<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

Te vendería mi talento por poder dormir tranquilo.
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.724


<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

Te vendería mi talento por poder dormir tranquilo.
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,993 Ú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,745 Último mensaje 24 Mayo 2012, 23:52 pm
por $Edu$
Problema con loop
Programación C/C++
jaxoR 7 3,553 Último mensaje 2 Marzo 2014, 21:30 pm
por jaxoR
[Resuelto] Problema con while (Loop)
Programación C/C++
jaxoR 7 3,336 Último mensaje 28 Abril 2014, 03:27 am
por jaxoR
problema con el do while loop
Programación C/C++
josephb401 3 2,117 Último mensaje 4 Abril 2016, 19:03 pm
por crack81
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines