Dev - C++ - Valor basura en el case

 
Vista:
sin imagen de perfil
Val: 10
Ha aumentado 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Valor basura en el case

Publicado por C.4 (6 intervenciones) el 07/08/2018 20:35:35
Hola, tengo este menú con métodos de ordenamiento,de momento solo he hecho el método burbuja pero al imprimir me ordena el vector pero si ingreso un valor con dos dígitos arroja un valor extraño,ya intente igualando las variables a cero pero no funciona y no puedo detectar cual es el error, agradecería mucho su ayuda.
Saludos.


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
#include<iostream>
using namespace std;
bool burbuja(bool);
int main()
{
	int opc;
	bool Var1,Var2;
	Var1=false;
	cout<<"BIENVENIDO AL MENU DE ORDENAMIENDO DE VECTORES"<<endl;
	cout<<"------------------------------------------------"<<endl;
	cout<<"                                                  "<<endl;
	cout<<" pulse 1 para ordenamiento por burbuja:"<<endl;
	cout<<" pulse 2 para ordenamiento por quick sort:"<<endl;
    cout<<" pulse 3 para salir:"<<endl;
    cin>>opc;
    switch(opc){
    	case 1:
    Var2 =	burbuja(Var1);
    if(Var2= true){
    	break;
	}
    return 0;
}
bool burbuja(bool Var)
{
	int i,j,aux;
    int x;
	int vect[9];
	cout<<"digite los valores del vector: "<<endl;
    for(x=0;x<=9;x++){
        cin>>vect[x];
    }
    for(i=0;i<=9;i++){
         for(j=0;j<=9;j++){
        	if(vect[j]>vect[j+1]){
        		aux=vect[j];
        		vect[j]=vect[j+1];
        		vect[j+1]=aux;
            }
        }
	}
 
    cout<<"el vector ordenado es:"<<endl;;
    for(i=0;i<=9;i++){
        cout<<vect[i]<<endl;
    }
    Var=true;
    return Var;
}
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
sin imagen de perfil
Val: 1.440
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Valor basura en el case

Publicado por dario (718 intervenciones) el 08/08/2018 07:02:15
Tu mismo codigo arreglado. Pruebalo y me avisas.
Salu2.

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
58
59
60
#include<iostream>
#define TALLA 5
 
using namespace std;
 
bool burbuja(bool);
 
int main()
{
  int opc;
  bool Var1,Var2;
  Var1=false;
 
  cout<<"BIENVENIDO AL MENU DE ORDENAMIENDO DE VECTORES"<<endl;
  cout<<"------------------------------------------------"<<endl;
  cout<<" "<<endl;
  cout<<" pulse 1 para ordenamiento por burbuja:"<<endl;
  cout<<" pulse 2 para ordenamiento por quick sort:"<<endl;
  cout<<" pulse 3 para salir:"<<endl;
  cin>>opc;
 
  switch(opc) {
    case 1:
      Var2 =	burbuja(Var1);
      if(Var2 = true)
        break;
    }
 
  return 0;
}
 
bool burbuja(bool Var)
{
  int i,j,aux;
  int x;
  int vect[TALLA];
 
  cout<<"digite los valores del vector: "<<endl;
  for(x=0;x<TALLA;x++) {
    cin>>vect[x];
  }
  for(i=0;i<TALLA;i++) {
    for(j=0;j<TALLA-1;j++) { //la condicion debe ser el tamanio del vector -1
      if(vect[j]>vect[j+1]) {
        aux=vect[j];
        vect[j]=vect[j+1];
        vect[j+1]=aux;
      }
    }
  }
 
  cout<<"el vector ordenado es:"<<endl;;
    for(i=0;i<TALLA;i++) {
      cout<<vect[i]<<endl;
    }
 
  Var=true;
 
  return Var;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 171
Ha aumentado 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Valor basura en el case

Publicado por juanki (73 intervenciones) el 08/08/2018 10:27:00
Hola

Sigue teniendo un importante fallo:

1
if(Var2 = true)

Eso es una asignación, no una comparación. Para comparar se usa ==.

Además, se puede reducir, basta con poner

1
if(Var2)

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 10
Ha aumentado 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Valor basura en el case

Publicado por Channyke (6 intervenciones) el 08/08/2018 20:23:17
Muchas gracias por tu observación lo tendré en cuenta para futuros códigos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 10
Ha aumentado 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Valor basura en el case

Publicado por Channyke (6 intervenciones) el 08/08/2018 20:22:09
Vale!! muchas gracias, no sabia que se podía usar una asignación de longitud del vector, ya no tiene ese valor extraño si le dígito dos dígitos.
Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar