elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Vector con puntero, obtener la posición de un determinado elemento.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Vector con puntero, obtener la posición de un determinado elemento.  (Leído 3,547 veces)
Dano1952

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Vector con puntero, obtener la posición de un determinado elemento.
« en: 8 Junio 2018, 01:27 am »

Hola, ¿como están?
Dude mucho antes de hacer este post, pero me plantie ¿si uno no pide ayuda como aprende?,-
Bueno eso es todo, dejo todo el programa ya que es corto y tal vez a alguien le sirva de consulta.-
Lo que necesito es para aplicar en el printf de la línea 61, -

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. #define ELEMENT 20
  6.  
  7. void rellenar( int *ptrVec );
  8. void ordenar ( int *ptrVec );
  9. void buscar ( int *ptrVec );
  10.  
  11. int main(int argc, char *argv[]){
  12. int vector[ELEMENT], i;
  13.  
  14. rellenar ( vector );
  15. ordenar ( vector );
  16. buscar ( vector );
  17.  
  18. return 0;
  19. }
  20.  
  21. void rellenar( int *ptrVec ){
  22. int numero, i;
  23. srand( time(NULL) );
  24.  
  25. for ( i=0; i<ELEMENT; i++){
  26. numero = rand() % 101;
  27. *( ptrVec + i) = numero;
  28. }
  29. }
  30.  
  31. void ordenar ( int *ptrVec ){
  32. int i, j, tmp, menor, pos;
  33.  
  34. for ( i=0; i<ELEMENT-1; i++ ){
  35. menor = *(ptrVec+i);
  36. tmp = menor;
  37. pos = i;
  38. for ( j=i; j<ELEMENT-1; j++ ){
  39. if ( menor > *(ptrVec +j+1) ){
  40. menor = *(ptrVec +j+1);
  41. pos = j+1;
  42. }
  43. }
  44. if ( tmp != menor ){
  45. *(ptrVec+i) = menor;
  46. *(ptrVec+pos) = tmp;
  47. }
  48. }
  49. }
  50.  
  51. void buscar ( int *ptrVec ){
  52. int centro,inf=0,sup=ELEMENT-1,buscar=15;
  53.  
  54. for (int i=0; i<ELEMENT; i++){
  55. printf ( "%d ", *(ptrVec+i) );
  56. }
  57.  
  58. while( inf<=sup ){
  59. centro=((sup-inf)/2)+inf;
  60. if(*(ptrVec+centro) == buscar){
  61. printf ( "\n Encontrado en la posicion...: %d", 2 );
  62. break;
  63. }
  64. else if(buscar < *(ptrVec+centro)){
  65. sup=centro-1;
  66. }
  67. else{
  68. inf=centro+1;
  69. }
  70. }
  71. }
Saludos.
Dano


En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Vector con puntero, obtener la posición de un determinado elemento.
« Respuesta #1 en: 8 Junio 2018, 02:07 am »

¿centro?


En línea

Dano1952

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Vector con puntero, obtener la posición de un determinado elemento.
« Respuesta #2 en: 8 Junio 2018, 03:04 am »

Hola.
Sigo embotado con esto y no logro la claridad, haber si entiendo, centro contiene un valor y lo que yo necesito es el número de elemento donde reside ese valor. - 



Si estoy buscando el 51 ¿como obtengo el 7?

Saludos.
Dano
En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Vector con puntero, obtener la posición de un determinado elemento.
« Respuesta #3 en: 8 Junio 2018, 05:42 am »

Pues eso, centro.
centro todo el rato marca en qué posición del array estás. Cuándo has encontrado la coincidencia centro deja de actualizarse guardando la posición del array con el elemento que se busca.
En línea

Dano1952

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Vector con puntero, obtener la posición de un determinado elemento.
« Respuesta #4 en: 8 Junio 2018, 16:17 pm »

Por algo me plantee que estaba obnubilado, era tan sencillo, mil disculpas por tu tiempo MAFUS (parecería que hice un copiar/pegar ;D ;D ;D),-

Dano.
En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.391


Ver Perfil
Re: Vector con puntero, obtener la posición de un determinado elemento.
« Respuesta #5 en: 8 Junio 2018, 17:49 pm »

Pero si llamas adecuadamente a las variables, resultará más asequible entender su propósito...

En vez de llamarla 'centro', porque no la llamas 'indice', o 'posicion' ?. Porque INDICA su POSICION.
...usar el nombre de 'centro' sería acorde si refiriera exactamente la posición central (o uno arriba/abajo del centro si fuera de tamaño par).
En línea

Dano1952

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Vector con puntero, obtener la posición de un determinado elemento.
« Respuesta #6 en: 8 Junio 2018, 18:26 pm »

Hola.
Lo voy a tener en cuenta, ha sido de mucha ayuda lo que dices.-

Saludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines