C/Visual C - Fernando mira este error por favor

 
Vista:
sin imagen de perfil

Fernando mira este error por favor

Publicado por Edwin (70 intervenciones) el 05/10/2006 01:42:59
Estoy programando en C, utilizando el FOR, pero no me ejecuta el siguiente GOR, me sale la pantalla de no enviar, la pantalla cuando sale error y se cierra la ventana. Acá está el código: en el segundo for se para, no lo sé, se pone alguna funcion para que continue el siguiente FOR?????

#include <stdio.h>
void main()
{
int x[3],y[3],z[3];
int a, b, c, e, k, d;
e=4;
d=0;
b=0;
c=0;
k=0;
for (a=0; a<=e-1;a++)
{
printf("Ingrese Numero\n");
scanf("%d", &x[a]);
y[a]=0;
}

z[1]=x[1];
printf("Ingrese Numero\n");
for (b=0;b<=e-1;b++)
{
for (c=0;b<=e-1;c++)
{
if(z[b]<=x[c] && y[c]==0)
{
z[b]=x[c];
k=c;
}
}
y[k] = k;
}

for (a=0;a<=e-1;a++)
{
printf("%d\n",z[a]);
}
}
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

RE:Fernando mira este error por favor

Publicado por Eduardo Negrete (76 intervenciones) el 05/10/2006 02:15:37
Bueno lo revise y encontre creo que dos errores te pongo el codigo y los errores

#include <stdio.h>
#include <conio.h>

void main()
{

int x[4],y[4],z[4]; // Metes Cuatro Valores Asi Que Debe De Ir Aqui 4
int a, b, c, e, k, d;

e = 4;
d = 0;
b = 0;
c = 0;
k = 0;

for ( a = 0; a <= e-1; a++ )
{
printf("Ingrese Numero\n");
scanf("%d", &x[a]);
y[a] = 0;
}

z[1] = x[1];
printf("Ingrese Numero\n");

for ( b = 0; b <= e-1; b++ )
{
// Nunca Sali Del segundo Ciclo Porque Estabas Haciendo La
// Comparacion Con b <= e-1; Ademas De Que El Indice De Los
// Vectores x[c] y y[c] Se Salian De Rango Y Tronaba

for ( c = 0; c <= e-1; c++ )
{
if ( z[b] <= x[c] && y[c] ==0 )
{
z[b] = x[c];
k = c;
}
}

y[k] = k;
}

for ( a = 0; a <= e-1; a++ )
{
printf("%d\n",z[a]);
}

getche();
} // Fin Del Ma
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

Gracias, miraRE:Fernando mira este error por favor

Publicado por Edwin (70 intervenciones) el 05/10/2006 02:47:26
ok, tus verificaciones son excelentes, pero se me olvido decir que el programa era para ordenar numeros, me han pedido que ordene 4 numeros, pero yo estoy haciendo para que pueda leer cualquier cantidad de numeros, ya corregi el tuyo y si sale los numeros ordenados; pero en la ultima linea no se que pasa, aparece otro error, no se a que se deba, ayudame por favor, soy nuevo en C, para que sirve el getche(); ??

Gracias de antemano, aca esta el nuevo codigo que si ordena:

#include <stdio.h>
#include <conio.h>

void main()
{

int x[4],y[4],z[4]; // Metes Cuatro Valores Asi Que Debe De Ir Aqui 4
int a, b, c, e, k, d,u;

e = 4;
d = 0;
b = 0;
c = 0;
k = 0;
u = 1;

for ( a = 1; a <= e; a++ )
{
printf("Ingrese Numero\n");
scanf("%d", &x[a]);
y[a] = 0;
}

z[1] = x[1];
printf("Ingrese Numero\n");

for ( b = 1; b <= e; b++ )
{
// Nunca Sali Del segundo Ciclo Porque Estabas Haciendo La
// Comparacion Con b <= e-1; Ademas De Que El Indice De Los
// Vectores x[c] y y[c] Se Salian De Rango Y Tronaba

for ( c = 1; c <= e; c++ )
{
if ( z[b] <= x[c] && y[c] ==0 )
{
z[b] = x[c];
k = c;
}
}

y[k] = k;
}

for ( u = 1; u <= e; u++ )
{
printf("%d\n",z[u]);
}
// mira aca falla
getche();
} // Fin Del Ma
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

RE:Gracias, miraRE:Fernando mira este error por fa

Publicado por Eduardo Negrete (76 intervenciones) el 05/10/2006 04:16:27
Pues si lo que quieres es ordenar un arreglo te recomiendo el metodo de la burbuja.

La funcion getche() es para capturar un caracter del teclado, pero dijamos que es un truco para darle un pauta a la aplicacion y que no se cierre al finalizar la aplicacion.

Te dejo un ejemplo:

Espero te sirva!!

#include <stdio.h>
#include <conio.h>
#define TAMANIO 10

// Prototipos De Funciones
// Recibe La Direccion Del Arreglo Desordenado
// Y En Donde Se Va A Guardar El Arreglo Ordenado
void ordenamBurbuja( const int Desordenado[], int Ordenado[] );
// Recibe La Direccion Del Arreglo La Palabra const Indica Que El
// Areglo Es De Solo Lectura Y No Podra Ser Modificado Por La Funcion
void imprimeArreglo( const int Ordenado[] );

// La Funcion main Comienza La Ejecucion Del programa
int main()
{

// Inicializa El Arreglo Aqui Puedes Pedirlo Con scanf
int Arreglo[ TAMANIO ] = { 6, 7, 8, 3, 1, 2, 4, 5, 9, 0 };
// Nuevo Vector Para Guardar El Ordenamiento
int Ordenado[TAMANIO];

// Manda Llamar A La Funcion ordenamBurbuja
ordenamBurbuja( Arreglo, Ordenado );

// Manda Llamar A La Funcion imprimeArreglo
imprimeArreglo( Ordenado );

getche();

return 0; // Indica Terminacion Exitosa

} // Fin De main

// Funcion Que Ordena Un Arreglo Mediante El Llgoritmo Del
// Metodo De La Burbuja
void ordenamBurbuja( const int Desordenado[], int Ordenado[] )
{

int pasada; // Contador De Pasadas
int j; // Contaodr De Pasadas
int almacena; // Ubicación Temporal Utilizada Para Intercambiar Los Elementos

// Ciclo Para Copiar El Arreglo Desordenado Al Arreglo Ordenado
for ( j = 0; j < TAMANIO; j++ )
Ordenado[j] = Desordenado[j];


// Ciclo Para Controlar El Numero De Pasadas
for ( pasada = 1; pasada < TAMANIO; pasada++ )
{
// Ciclo Para Controlar El Numero De Comparaciones Por Pasada
for ( j = 0; j < TAMANIO - 1; j++ )
{
// Intercambia Los Elementos Si No Se Encuentran En Orden
// Ordena De Mayor A Menor
if ( Ordenado[ j ] > Ordenado[ j + 1 ] )
{
almacena = Ordenado[ j ];
Ordenado[ j ] = Ordenado[ j + 1 ];
Ordenado[ j + 1 ] = almacena;
} // Fin De if

} // Fin Del for Interno

} // Fin Del for Externo

} // Fin De ordenamBurbuja

// Muestra El Contenido Del Arreglo En Pantalla
void imprimeArreglo( const int Ordenado[] )
{

int j; // Contador

// Muestra El Contenido Del Arreglo
for ( j = 0; j < TAMANIO; j++ )
printf( "%d\n", Ordenado[ j ] );


} // Fin De La Funcion imprimeArreglo
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

RE:Gracias, miraRE:Fernando mira este error por fa

Publicado por jesus (11 intervenciones) el 05/10/2006 14:19:13
#include <stdio.h>

void main()
{

int x[4],y[4],z[4]; // Metes Cuatro Valores Asi Que Debe De Ir Aqui 4
int a,e,c,posmin, aux,min;

e = 4;

for ( a = 0; a < e; a++ ) //Los indices en vectores van de 0 al numero que le pusiste
//menos 1 (0,1,2,3 = 4 numeros)
{
printf("Ingrese Numero\n");
scanf("%d", &x[a]);
}

for ( a = 0; a < e ; a++ )
{
min=x[a];
for ( c = a; c < e; c++ )
{
if (min >= x[c])
{
min=x[c]; //Introducimios el menor valor en el minnimo
posmin=c; //Guardamos la posicion en la que esta el minimo
} //Fin si
} //Fin for2

aux=x[a];
x[a]=min;
x[posmin]=aux; //Hemos intercambiado el primer valor por el minimo
} //Fin for1

//Si te das cuenta en cada pasada dejamos el menor a la izquierda
//por lo que prescindimos de comprobarlo (comenzamos el segundo
//bucle desde el valor de a)

for ( a = 0; a < e; a++ )
{
printf("%d\n",x[a]);
}
system("pause");
} // Fin Del Ma

// Espero que te funcion, este metodo se conoce como ordenacion por seleccion
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