Dev - C++ - Mi programa deja de funcionar

   
Vista:

Mi programa deja de funcionar

Publicado por Carlos pinedalopez97@gmail.com (2 intervenciones) el 29/01/2018 19:50:27
1
2
3
4
5
6
7
8
9
10
11
int aux=0;
for(int i=0;i<c;i++){
	aux=0;
	for(int j=0;j<f;j++){
		if(m[j+1][i]<m[j][i])
		aux=m[j][i];
		m[j][i]=m[j+1][i];
		m[j+1][i]=aux;
 
	}
}
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

Mi programa deja de funcionar

Publicado por harol (30 intervenciones) el 29/01/2018 21:40:26
escribe el código completo... para poder ayudarte..
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

Mi programa deja de funcionar

Publicado por agustin (522 intervenciones) el 30/01/2018 00:32:18
Cómo te han dicho, pon el código completo pero de entrada pienso que estás desbordando la memoria del array aquí:
1
if(m[j+1][i]<m[j][i])
Y aquí:
1
2
m[j][i]=m[j+1][i];
m[j+1][i]=aux;
El j+1 casi seguro que desborda ya que si por ejemplo si fuera vale 5 la condicional irá desde 0 hasta 4 pero sin embargo j+1 puede llegar hasta 5.
Por otro lado no entiendo lo que quieres hacer porque parece que quieres ordenar con el método de la burbuja pero de una forma muy peculiar. Si lo que quieres es ordenar cada fila necesitas otro for.
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

Mi programa deja de funcionar

Publicado por Carlos (2 intervenciones) el 30/01/2018 03:18:22
Gracias por ayudarme.
Lo que quiero es ordenar de manera ascendente las columnas de una matriz dinamica en c++.
Usando el metodo de burbuja, pero si tiene razon que desborde el for.
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

Mi programa deja de funcionar

Publicado por agustin (522 intervenciones) el 30/01/2018 21:07:49
Si no te entendí mal sería algo así:
1
2
3
4
5
6
7
8
9
10
11
12
int aux;
for(int x=0;x<f;x++){
    for(int i=0;i<c-1;i++){
	    for(int j=i+1;j<c;j++){
		    if(m[j][x]<m[i][x]){
		        aux=m[j][x];
		        m[j][x]=m[i][x];
		        m[i][x]=aux;
            }
        }
    }
}
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
Revisar política de publicidad