C/Visual C - duplicado

 
Vista:

duplicado

Publicado por denis (3 intervenciones) el 27/06/2008 22:49:25
Buenas tardes:
Me he topado con un problema que no se como resolver espero me puedan hechar una mano:
La computadora debe llenar al azar un vector con N elementos enteros positivos sin repeticion en rango de 1 a N, Hacer el programa:

#define N 10

int evalua( int *, int );

int main( )
{
int m[ N ] = { 0 };
register int i;

srand( time(NULL) );

for ( i = 0; i < N; i++ ) {
m[i] = 1 + rand() % N;
if ( evalua( m, i ) )
i--;
}

/* muestro los elementos */
for ( i = 0; i < N; i++ ) {
if ( i % 5 == 0 )
printf( " " );
printf( "%2d ", m[i] );
}

getch();
return 0;
}

/* Esto devuelve 1 si un anterior esta duplicado 0 caso contrario */
int duplcado( int * m, int lim ) {

int evalua( int *m, int lim ) {
register int i;

for ( i = 0; i < lim; i++ ) {
if ( m[lim] == m[i] )
return 1;
}
return 0;
}
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:duplicado

Publicado por denis (3 intervenciones) el 27/06/2008 22:52:06
Mi pregunta es por que no funciona para mas de 10 elementos, podrian ayudarme a codificar algo mas efectivo
Gracias de antemano
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:duplicado

Publicado por Gilberto (31 intervenciones) el 29/06/2008 15:35:16
Porqué dices que no funciona para más de 10 elementos? Cómo es la salida?
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:duplicado

Publicado por denis (1 intervención) el 29/06/2008 20:25:07
Cuando modifico para N = 5 o N = 10 si funciona, obtengo elementos diferentes dentro de ese rango pero cuando hago para N > 10, no muestra nada se queda como si entrara en un bucle infnito suponia que estaba hacendo muchas llamadas a la funcion evalua() pero nada..que es lo que pasa
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:duplicado

Publicado por Gilberto (31 intervenciones) el 29/06/2008 20:47:45
Raro, porque corrí tu programa y funciona perfecto en VC++ 8. Que IDE usas? ocupa la herramienta que tengas disponible para debugear paso a paso el programa
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