Foros del Web » Programación para mayores de 30 ;) » C/C++ »

el codigo no imprime una variable por que?

Estas en el tema de el codigo no imprime una variable por que? en el foro de C/C++ en Foros del Web. hola tengo un problema tengo un código y quiero que ordene los valores de cada posición de arreglo me de los impares y haga la ...
  #1 (permalink)  
Antiguo 01/11/2012, 13:10
 
Fecha de Ingreso: septiembre-2012
Mensajes: 29
Antigüedad: 11 años, 7 meses
Puntos: 0
el codigo no imprime una variable por que?

hola tengo un problema tengo un código y quiero que ordene los valores de cada posición de arreglo me de los impares y haga la sumatoria de cada numero pero la variable que debería hacer la sumatoria no la imprime y tampoco imprime un texto que escribí que dice "la suma es". por que pasa esto?

Edito: el programa no compila y el dev me estaba compilando uno anterior no se por que aun estoy trabajando en arreglarlo asi que no se gasten en revisar el daño

aquí esta el código

Código C++:
Ver original
  1. #include <iostream>
  2. #include <cstdlib>
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.     system("color 70");
  8.     int array[5],x=0,j=0,temp;
  9.     for (x=0;x<=4;x++)
  10.     {
  11.         cout << "digite el "<<x<<" numero "<<endl;
  12.         cin >> array[x];
  13.     }
  14.     for (x=0;x<=4;x++)
  15.         for(j=0;j<3;j++)
  16.     {
  17.             if(array[x] > array[x+1])
  18.             {
  19.                 temp = array[x];
  20.                 array[x] = array[x+1];
  21.                 array[x+1] = temp;
  22.             }
  23.        
  24.     }
  25.     cout <<"Ordenamiento: " <<endl;
  26.     for (x=0;x<=4;x++)
  27.     {
  28.         cout << array[x] << endl;
  29.     }
  30.     cout << "IMPARES:"<<endl;
  31.     for (x=0;x<=4;x++)
  32.     {
  33.         if(array[x] % 2 != 0){
  34.             if(array[x] >1)
  35.             {
  36.                 int i,suma;
  37.                 cout<<"los impares menores a\t"<<array[x]<<"son\t"<<endl;
  38.                 for(i=1;i<array[x];i=i+2){
  39.                     suma=suma+i;
  40.                     cout<<i<<",";
  41.                 }
  42.                 cout<<endl;
  43.                 cout<<"la suma de los impares es \t"<<i<<"el bueno"<<suma<<endl;
  44.             }
  45.            
  46.             cout << "Valor-->\t" << array[x]<<endl<<endl;
  47.         }
  48.     }
  49.     system("pause");
  50.     return 0;
  51. }
  52. }

Última edición por sonrasiel; 01/11/2012 a las 14:31 Razón: error de compliacion
  #2 (permalink)  
Antiguo 01/11/2012, 14:45
Avatar de cronopiomx  
Fecha de Ingreso: mayo-2012
Ubicación: Programing Cloud
Mensajes: 282
Antigüedad: 11 años, 11 meses
Puntos: 28
Respuesta: el codigo no imprime una variable por que?

la variable suma tienes que inicializarla en 0, prueba a ver.

saludos
cronos
  #3 (permalink)  
Antiguo 01/11/2012, 14:48
Avatar de cronopiomx  
Fecha de Ingreso: mayo-2012
Ubicación: Programing Cloud
Mensajes: 282
Antigüedad: 11 años, 11 meses
Puntos: 28
Respuesta: el codigo no imprime una variable por que?

el algoritmo de ordenamiento que usas es Bubble Sort, pero creo que lo estas usando mal, si lo que realizas en tu codigo es un simple ordenamiento de 1 arreglo de int, entonces debes hacerlo asi:
for (x=0; x<=4 ;x++)
for(j=x+1; j<=4 ; j++)
{
if(array[x] > array[j])
{
temp = array[x];
array[x] = array[j];
array[j] = temp;
}

}

s2
cronos
  #4 (permalink)  
Antiguo 02/11/2012, 07:55
 
Fecha de Ingreso: octubre-2012
Ubicación: Lima
Mensajes: 31
Antigüedad: 11 años, 6 meses
Puntos: 1
Respuesta: el codigo no imprime una variable por que?

En la linea 11 no deberia ser x sino un numero (int num)
__________________
Lo mas curioso en esta vida es que todo se hace mas simple cuando lo divides de 2 en 2.
  #5 (permalink)  
Antiguo 02/11/2012, 08:18
 
Fecha de Ingreso: octubre-2012
Ubicación: Lima
Mensajes: 31
Antigüedad: 11 años, 6 meses
Puntos: 1
Respuesta: el codigo no imprime una variable por que?

Cita:
Iniciado por OscarMariano Ver Mensaje
En la linea 11 no deberia ser x sino un numero (int num)
Me confundi ya entendi que querias hacer ahora veo que paso
__________________
Lo mas curioso en esta vida es que todo se hace mas simple cuando lo divides de 2 en 2.
  #6 (permalink)  
Antiguo 02/11/2012, 08:20
 
Fecha de Ingreso: octubre-2012
Ubicación: Lima
Mensajes: 31
Antigüedad: 11 años, 6 meses
Puntos: 1
Respuesta: el codigo no imprime una variable por que?

Para empezar acumuladores y contadores se declaran antes de la estructura repetitiva en tu caso el for afuera del for debiste poner int suma=0;
__________________
Lo mas curioso en esta vida es que todo se hace mas simple cuando lo divides de 2 en 2.
  #7 (permalink)  
Antiguo 02/11/2012, 08:43
 
Fecha de Ingreso: octubre-2012
Ubicación: Lima
Mensajes: 31
Antigüedad: 11 años, 6 meses
Puntos: 1
Respuesta: el codigo no imprime una variable por que?

Asi esta mas bonito lo que quieres haces fijate bien en tus bucles como los haces ahi has tenido mas problemas, por algo dicen manten el codigo simple :

#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
system("color 70");
int array[5],x=0,j=0,temp;
for (x=0;x<=4;x++)
{
cout << "digite el numero que ira en la posicion "<<x<<" del arreglo =>";
cin >> array[x];
}
for (x=0; x<=4 ;x++)
for(j=x+1; j<=4 ; j++)
{
if(array[x] > array[j])
{
temp = array[x];
array[x] = array[j];
array[j] = temp;
}
}
cout <<"Ordenamiento: " <<endl;
for (x=0;x<=4;x++)
{
cout << array[x] << endl;
}


int suma=0,suma2=0;
for (x=0;x<=4;x++)
{
if(array[x] % 2 != 0){
suma=suma+array[x];
}

else{
suma2=suma2+array[x];
}

}
cout<<"la suma de los impares es =>"<<suma<<endl;
cout<<"la suma de los pares es =>"<<suma2<<endl;
cout<<"la suma total es =>"<<suma+suma2<<endl;
system("pause");
return 0;
}
__________________
Lo mas curioso en esta vida es que todo se hace mas simple cuando lo divides de 2 en 2.

Etiquetas: imprime, int, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:37.