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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


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

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Busqueda lineal
« en: 3 Octubre 2011, 02:29 am »

Cordial saludo, me estoy iniciando en C++ en la universidad y me ha tocado trabajar en un programa que, ordene y busque un elemento en una lista. El programa que tengo actualmente me corre, pero no me da el resultado esperado, que es el elemento a buscar en la posición que tiene,  he intentado de varias formas pero no puedo finalizar con la búsqueda correctamente.   El código es el siguiente, trabajo con turbo C 3.0


/*programa que muestra la puntuacion de las actividades de la unad*/
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
int main()
{
   clrscr();
   int estudiante[7]={0, 10,15, 8,14, 16, 13};
   int i, k,c,temp,valor ;          //c es el contador, temp variable temporal
   char  unidad[7]= {'u','n','i','d','a','d'};

      for (i=0; i<=6;i++)
      {
      printf ("%c",unidad );
      }

      for (k=1; k<7;k++)
      {
      printf ("\n la actividad %d es igual a  %d",k, estudiante[k] );
      }
printf("\n Procederemos a ordenar las notas del estudiante\n");


printf("Las notas del estudiante son\n  ");
      for (k=1; k<7;k++)
      {
      printf(" %d  ",estudiante[k]);
      }
         /*se aplica el algoritmo de la burbuja*/
      for (k=0; k<(7-1);k++)
         {
      for (c=k+1; c<7;c++)
      {
      if( estudiante[c]<estudiante[k]){
      temp=estudiante[c];
      estudiante[c]=estudiante[k];
      estudiante[k]=temp;
      }
         }
                  }
printf("\nlas notas ordenadas son:\n ");
for(k=0; k<7; k++){
printf(" %d", estudiante[k]);
}
printf("\n");

cout<<"\ndigite el numero a buscar\n";
cin>>valor;
for (k=0;k<7;k++);{
   if(valor==estudiante[k])
   cout<<"\n encontrado en la posicion\n"<<k+1<<endl;
else
cout<<"no existe en el arreglo";
}
getch();

return 0;
}


por favor colaboren me, es la ultima parte sobre búsqueda que no me arroja el resultado que es.


En línea

satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Busqueda lineal
« Respuesta #1 en: 3 Octubre 2011, 16:47 pm »

Hola

El error lo tienes aquí:
Código
  1. cout<<"\ndigite el numero a buscar\n";
  2. cin>>valor;
  3. for (k=0;k<7;k++);{
  4. if(valor==estudiante[k])
  5. cout<<"\n encontrado en la posicion\n"<<k+1<<endl;
  6. else
  7. cout<<"no existe en el arreglo";
  8.  
En el for te sobra el ; del final (el que tienes puesto delante de la llave)

Puedes sustituir todo ese trozo por este:
Código
  1. cout<<"\ndigite el numero a buscar\n";
  2. cin>>valor;
  3. bool enc = false;
  4. for (k=0; k<7 && !enc; k++)
  5.    if(valor==estudiante[k])
  6.        enc = true;
  7.  
  8. if(enc)
  9.    cout<<"\nEncontrado en la posicion"<<k<<endl;
  10. else
  11.    cout<<"\nNo existe en el arreglo";
  12.  

Además te recomiendo que te leas esto y no olvides poner el code entre las etiquetas de GeSHi (la tienes al lado del botón de elegir el tipo de fuente)

Saludos


« Última modificación: 3 Octubre 2011, 16:59 pm por Eternal Idol » En línea

Breakbeat como forma de vida
javier210186

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Busqueda lineal
« Respuesta #2 en: 5 Octubre 2011, 06:07 am »

Cordial saludo, efectivamente me funciono, te agradezco por la colaboración, pues la profesora me había dicho que estaba malo, pero eso ya lo sabia. ya me había pasado mas de una tarde dándole vueltas . De nuevo muchas gracias. se nota que tienes grandes conocimientos en la materia. ojala fueras mi profesor en la universidad. tal ves entendería mejor.

En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
fuente regulada lineal
Electrónica
jrivero 0 1,985 Último mensaje 1 Julio 2005, 22:17 pm
por jrivero
Amplificador Lineal Wifi
Electrónica
wiserlander 3 6,317 Último mensaje 24 Marzo 2007, 00:45 am
por wiserlander
Agenda de 1000 numeros con ordnacion shell y busqueda lineal
.NET (C#, VB.NET, ASP)
Sh¡kar! 0 2,278 Último mensaje 1 Junio 2010, 22:09 pm
por Sh¡kar!
[Vbs] Calculo de un determinante Algebra Lineal
Scripting
.:: KsV ::. 0 2,271 Último mensaje 11 Julio 2015, 23:20 pm
por .:: KsV ::.
AYUDA ... Sistema lineal NxN por el método de Gauss (PIVOTE)
Programación C/C++
Alele54 0 1,955 Último mensaje 7 Diciembre 2015, 23:21 pm
por Alele54
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines