Buenas, a ver si alguno me puede echar una mano con este codigo. Se trata de que busque en una array el numero que ingresa pero cuando me devuelve la peticion, me muestra las opciones repetidas. Os dejo el codigo por si mi nefasta explicacion no ha servido.
#include <stdio.h> #include <stdlib.h> #define longitud 5 #define NO -1 int buscar(int Nvalor, int array[], int tamano){ int i; for(i=0;i<tamano;i++){ if(array[i] == Nvalor) return i; } return NO; } int main(){ int array[longitud]={1, 5, 3, 4, 5 }; int numero; int actual=0; int crida; printf("Dime que numero quieres buscar? [1, 5, 3, 4, 5]\n"); scanf("%d", &numero); printf("\n"); while(crida!=NO){ crida = buscar (numero, &array[actual], longitud-actual); if(actual=actual+crida+1){ printf("El numero %d se encuentra en la posicion %d\n", numero, actual); } else (crida == NO);{ printf("Numero no encontrado\n"); } } system("pause"); }
Muchas gracias!
¡John 3:16!
No entiendo muy bien cuál ni
No entiendo muy bien ni cuál es el objetivo del código ni cuál es el problema que tienes. De entrada, date cuenta que cuando evalúas la expresión if(actual=...) estás realizando una asignación (=) en lugar de una comparación(==).
Si nos explicas un poco lo que debería hacer el ejercicio y el problema que te da es posible que podamos ayudarte más. Si te es difícil de redactar el comportamiento que debería tener el código, simplemente pon algún juego de pruebas para que lo veamos directamente.
Saludos
#include <stdio.h> #include
El problema está en que cuando se vuelve a hacer la iteraccion del bucle while no restringes con un if, entonces te lo vuelve a mostrar de nuevo :), espero haberte servido de ayuda.