Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: ranker en 27 Mayo 2015, 21:58 pm



Título: Ayuda en C (Arreglo, Impar y Ordenar)
Publicado por: ranker en 27 Mayo 2015, 21:58 pm
Hola a todos, me podrías ayudarme a hacer con el ejercicio en C.
Hacer un programa que tenga un arreglo de 50 posiciones se debe poder realizar una búsqueda de un elemento y se debe informar si esta o no, si esta se debe decir si esta repetido y cuantas veces ademas presentar la suma de los elementos de las posiciones impares. Debemos también permitir eliminar una posición que se desee y ordenador los datos para que no quede el lugar vació.


Título: Re: Ayuda en C (Arreglo, Impar y Ordenar)
Publicado por: engel lex en 27 Mayo 2015, 22:06 pm
no se hacen tareas, se resuelven dudas especificas sobre asuntos puntuales...

no esperes el código hecho... si tienes una duda sobre un tema claro, publícala, también lo que lleves de tu código (debes usar las etiquetas GeSHi al publicar código)


Título: Re: Ayuda en C (Arreglo, Impar y Ordenar)
Publicado por: ranker en 27 Mayo 2015, 22:09 pm
no se hacen tareas, se resuelven dudas especificas sobre asuntos puntuales...

no esperes el código hecho... si tienes una duda sobre un tema claro, publícala, también lo que lleves de tu código (debes usar las etiquetas GeSHi al publicar código)

yo lo sabia pero bueno es dificil para mi este ejercicio, lo siento man.


Título: Re: Ayuda en C (Arreglo, Impar y Ordenar)
Publicado por: engel lex en 27 Mayo 2015, 22:12 pm
aún sigo sin ver ninguna duda... si no expones tus dudas es difícil que podamos resolverlas...


Título: Re: Ayuda en C (Arreglo, Impar y Ordenar)
Publicado por: ranker en 27 Mayo 2015, 22:21 pm
aún sigo sin ver ninguna duda... si no expones tus dudas es difícil que podamos resolverlas...
esta bien te lo dejo mi codigo que hice trabajo ayer, pero es dificil lo de elementos impar y el arreglo numero

Código
  1. void main(){
  2. int a[50],enc=0,mid,cont,cont1,n,x,suma,pos,inf=0,sup=50;
  3. clrscr();
  4. for(cont=0;cont<50;cont++)
  5. a[cont]=random(100)+1;
  6. printf("\n El arreglo es: \n");
  7. for(cont=0;cont<50;cont++)
  8. printf(" %d ",a[cont]);
  9. printf("\n Que elemento desea buscar? \n");
  10. scanf("%d",&n);
  11. while(inf<=sup && enc!=1){
  12.   mid=(inf+sup)/2;
  13.   if(a[mid]==n){
  14. printf("\n El numero se encontro y se repite: %d",mid);
  15. enc=1;
  16. cont1++;
  17.       }else if(a[mid]>n){
  18.      sup=mid;
  19.      cont1++;
  20.  else(inf==mid)
  21.       cont1++;
  22.      }
  23.      }
  24.     printf(" \n El numero se repite: %d",cont1);
  25.    if(enc==0)
  26. printf("El numero no se encontro");
  27. for(cont=1;cont<49;cont++)
  28. suma=(a[cont]+a[cont+2]);
  29. printf("\n La suma de las posiciones impares es: %d",suma);
  30. printf("\n Que posicion desea eliminar? \n");
  31. scanf("%d",&pos)
  32. for(cont=0;cont<50;cont++)
  33. a[pos]=a[cont+1];
  34. a[cont]=a[cont+1];
  35. for(cont=0;cont<50;cont++)
  36. printf("\n el arreglo quedo: &d",a[cont]);
  37. }
Mod: Corregido con etiquetas GeSHi para hacerlo más legible


Título: Re: Ayuda en C (Arreglo, Impar y Ordenar)
Publicado por: engel lex en 27 Mayo 2015, 22:39 pm
una llaves! :S no se cual es la adversion de la gente hacia las llaves... eso evita muchos problemas y aumenta mucho la legibilidad del código

para buscar no es necesario tanto código... desde la linea 11 hasta la 26 puede resumirse en

Citar
se debe informar si esta o no, si esta se debe decir si esta repetido y cuantas veces

Código
  1. for(i=0;i<50;i++){//se revisa
  2.  if(a[i]==n){
  3.    enc++;
  4.  }
  5. }
  6. if(enc==0){//si no está
  7.  //imprime "no se encontro"
  8. }else{//si está
  9.  //imprime "se encontró"
  10. }
  11. // obsevar que no tienen el salto de linea para completar luego
  12.  
  13. if(enc>1){//si se repite
  14.  //imprime " y se repite %d veces",enc
  15. }
  16. //imprime "\n"
  17. //tienes la frase bien armada y con salto de linea final
  18.  


la linea 27 la suma no la veo bien que hace... mejor esto ("suma" debe estar inicializado a 0)

Citar
presentar la suma de los elementos de las posiciones impares.

Código
  1. for(i=1;i<50;i+=2){//i+=2 es lo mismoq ue i=i+2
  2.  suma+=a[i];
  3. }


en la linea 33 o 34 te debe dar error por no usar las llaves...esto -> {} <-  siempre debe usarse, especialmente si no eres ampliamente experimentado...

corrige esa ultima parte