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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con condicional if
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con condicional if  (Leído 1,682 veces)
macshivi

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Problema con condicional if
« en: 22 Noviembre 2016, 17:33 pm »

He hecho un programa que te rellena un vector con numeros aleatorios y luego te lo ordena mediante el metodo burbuja (se que hay mejores algortimos pero es una condicion explicita en el ejercicio) y luego te pide un numero y te lo busca dentro del vector usando un algoritmo dicotomico
(tambien explicito en el ejercicio).
Todo esto funciona, pero al marcar un numero que no esta dentro del vector que sea menor ha v[0] falla. Es decir, ell condicional if de la linea 67 no me funciona con valores menos ha v[0].

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #define h 5
  5.  
  6. int main(int argc, char *argv[]) {
  7. /*Ordenacion burbuja*/
  8. int v[h],i,j,aux;/*Variables ordenacion burbuja*/
  9. int inf,sup,med,n;/*Variables busqueda dicotomica */
  10. srand(time(NULL));/*Esta funcion permite que los numeros aleatorios varien cada vez que se ejecute el programa*/
  11. /*Llenamos el vector con variables aleatorias*/
  12. for(i=0;i<h;i++){
  13.  
  14. v[i]=rand()%20;
  15. printf("%d ",v[i]);
  16.  
  17. }
  18. printf("\n\n");
  19. /*Ordenacion de los numeros por el metodo burbuja*/
  20. for (i=0;i<h;i++){
  21.  
  22. for(j=i+1;j<h;j++){
  23.  
  24. if(v[j]<v[i]){
  25. aux=v[i];
  26. v[i]=v[j];
  27. v[j]=aux;
  28. }
  29.  
  30. }
  31. }
  32. /*Impresion de los numeros ordenador*/
  33. for(i=0;i<h;i++){
  34. printf("El vector v[%d] vale: %d\n",i,v[i]);
  35.  
  36. }
  37. /*No funciona con n<v[0]*/
  38. printf("\n Introduce el numero que quieres buscar: ");
  39. scanf("%d",&n);
  40. /*Busqueda dicotomica*/
  41. inf=0;
  42. sup=h;
  43.  
  44. while(inf<sup){
  45.  
  46. med=(inf+sup)/2;
  47.  
  48. if (v[med]==n){
  49.  
  50. printf("El numero que has seleccionado se encuentra en la posicion %d",med);
  51. break;
  52. }
  53. if (v[med]>n){
  54.  
  55. sup=med;
  56.  
  57.  
  58. }
  59. if (v[med]<n){
  60. inf=med+1;
  61.  
  62.  
  63. }
  64.  
  65. }
  66.  
  67. if((inf=sup)&&!(n==v[med])) {
  68. printf("El numero no existe dentro del vector");
  69. /*No funcoina con valores mas pequeños que v[0]*/
  70. }
  71.  
  72. return 0;
  73. }


En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Problema con condicional if
« Respuesta #1 en: 22 Noviembre 2016, 18:01 pm »

Línea 67: una condición del if es inf=sup


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con condicional dentro de un bucle.
PHP
Joystickoso 7 3,220 Último mensaje 1 Agosto 2009, 15:43 pm
por Joystickoso
problema con el operador condicional ? en C
Programación C/C++
higor24 3 3,802 Último mensaje 15 Noviembre 2010, 21:17 pm
por higor24
El otro condicional IF ??
PHP
Diabliyo 4 4,279 Último mensaje 1 Junio 2011, 15:50 pm
por Diabliyo
Ayuda con Condicional
Bases de Datos
[u]nsigned 3 2,823 Último mensaje 25 Febrero 2012, 15:10 pm
por [u]nsigned
problema en condicional if; [bash]
Scripting
<[(x)]> 2 3,305 Último mensaje 11 Marzo 2012, 02:00 am
por leogtz
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines