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)
| | |-+  Problemas vectores
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problemas vectores  (Leído 3,644 veces)
DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Problemas vectores
« en: 2 Marzo 2012, 18:50 pm »

Hola.

Tengo un problema con los vectores. El enunciado del ejercicio es el siguiente:

Escribir una función que busque en un vector de números el máximo valor, e indique
su valor y posición. Se supone que el vector está desordenado.

Esto es lo que yo he intentado. Cuando compruebo el resultado no está bien.

Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. int maximapos (int V[], int n){
  5.  
  6. int i,mejor_valor;
  7.  
  8. mejor_valor=V[0];
  9.  
  10. for(i=0;i<n;i++) if (V[i]>mejor_valor) mejor_valor=i;
  11.  
  12.    return(mejor_valor);    
  13. }
  14.  
  15. int main (void){
  16.  
  17. int V[7]={12,15,3,64,6,2,1};
  18.  
  19. int mejor_posicion,mejor_valor,i;
  20.  
  21. mejor_posicion=maximapos(V,7);
  22.  
  23. mejor_valor=V[mejor_posicion];
  24.  
  25. printf("El mejor valor es %d y su posicion es %d",mejor_valor,mejor_posicion);
  26.  
  27. system("pause");
  28.  
  29. }
  30.  

Muchísimas gracias.

Saludos.


« Última modificación: 2 Marzo 2012, 22:21 pm por DickGumshoe » En línea

s00rk

Desconectado Desconectado

Mensajes: 195



Ver Perfil
Re: Problemas vectores
« Respuesta #1 en: 2 Marzo 2012, 19:44 pm »

Pues yo le veo bien a exepcion de un for que tienes de mas en el codigo, ademas de que al crar la variable V agregas directamente el tamaño, bueno yo lo haria asi:

Asi solamente cambio o agrego o quito numeros en el vector y ya no cambio nada mas puesto que ahi mismo agregue la funcion que me indique el tamaño del vector y asi enviar ese resultado a la otra funcion donde sera utilizado, para el for.
Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. int maximapos (int V[], int n)
  5. {
  6.  
  7.    int mejor_valor;
  8.    mejor_valor=V[0];
  9.    for(int i=1; i < n; i++)
  10.        if(V[i] > mejor_valor)
  11.            mejor_valor = i;
  12.    return mejor_valor;
  13. }
  14.  
  15. int main ()
  16. {
  17.  
  18.    int V[] = {12,15,3,64,6,2,1};
  19.  
  20.    int posicion, maxvalor, tam;
  21.  
  22.    tam = sizeof(V) / sizeof(int);
  23.    posicion = maximapos(V, tam);
  24.    maxvalor = V[posicion];
  25.  
  26.    printf("El mejor valor es %d y su posicion es %d \n", maxvalor, posicion);
  27.  
  28.    system("pause");
  29. }
  30.  


En línea

DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Re: Problemas vectores
« Respuesta #2 en: 2 Marzo 2012, 22:20 pm »

Muchas gracias por responder.

Ese for que puse al final era que había hecho una prueba y se me olvidó borrarlo. Ahora edito el mensaje.

Respecto a tu código... Tiene el mismo error que el mío. No sé por qué, pero sale que el mayor valor es 6...

Gracias.

Saludos.
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Problemas vectores
« Respuesta #3 en: 2 Marzo 2012, 22:26 pm »

El problema se debe a la funcion que encuentra el maximo, falta consistencia:
Código
  1. int maximapos(int V[], int n)
  2. {
  3.   int i,mejor_valor;
  4.  
  5.   mejor_valor = V[0]; /* <== valor */
  6.  
  7.   for (i = 0; i < n; i++)
  8.      if (V[i] > mejor_valor) /* <== valor */
  9.         mejor_valor = i; /* <== indice */
  10.  
  11.  
  12.   return(mejor_valor);
  13. }
Eso lo solucionas en un par de minutos.

Por cierto la sentencia de retorno "return(mejor_valor);" es solo eso: una sentencia. Los parentesis en ella estan de mas.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Re: Problemas vectores
« Respuesta #4 en: 2 Marzo 2012, 22:41 pm »

Muchas gracias por responder.

Con eso ya probé (y he vuelto a probar), pero sigue saliendo que el máximo es 6...

Gracias.

Saludos.
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Problemas vectores
« Respuesta #5 en: 2 Marzo 2012, 23:03 pm »

Si solo dices "Eso ya lo probé, eso no es" no hay forma de comprobar lo dicho.

Supongo habrás cometido algún error ya que si la función se corrige solucionando la falta de consistencia que te mencione:
Código
  1. int maximapos (int V[], int n)
  2. {
  3.   int i, mejor_valor;
  4.  
  5.   mejor_valor = 0;
  6.   for (i = 1; i < n; i++)
  7.      if (V[i] > V[mejor_valor])
  8.         mejor_valor = i;
  9.  
  10.   return mejor_valor;
  11. }
El programa produce la salida esperada.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Re: Problemas vectores
« Respuesta #6 en: 2 Marzo 2012, 23:11 pm »

Muchas gracias. El fallo que tenía antes era que ponía al principio que el mejor valor era V[0], y debía poner 0.

Saludos.
En línea

Sagrini

Desconectado Desconectado

Mensajes: 107


Ver Perfil WWW
Re: Problemas vectores
« Respuesta #7 en: 2 Marzo 2012, 23:25 pm »

Código
  1. #include <stdio.h>
  2.  
  3. int ordenar (int args [], int n)
  4. { int mayor=0, i, a;
  5. for (i=0; i<n; i++) if (mayor<args [i]) { mayor=args [i]; a=i; }
  6. return a;
  7. }
  8.  
  9. int main (int argc, char *argv [])
  10. { int nums [] = { 5, 7, 10, 4, 9, 12, 15, 19, 3 }; int i = ordenar (nums, 9);
  11. printf ("%d %d\n", i+1, nums [i]);
  12. return 0;
  13. }
  14.  
Si no te importa, me podrias decir en que universidad estas? ;) Sólo curiosidad haha
En línea

DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Re: Problemas vectores
« Respuesta #8 en: 2 Marzo 2012, 23:38 pm »

Gracias por el código.

Yo todavía no tengo edad para estar en la Universidad, tengo 14 años. Como me gustaría estudiar Ingeniería Informática, ayudo a mi hermana, que está estudiando Matemáticas en la Universidad de Cádiz.

Saludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
de pixeles a vectores
Diseño Gráfico
kaliyas 5 2,499 Último mensaje 21 Noviembre 2005, 14:43 pm
por noob_Setup
Imagenes en vectores(EPS)
Diseño Gráfico
Mr.Zeros0 1 1,905 Último mensaje 7 Septiembre 2006, 23:46 pm
por Mr.Zeros0
vectores
Programación C/C++
tartagal 1 2,888 Último mensaje 7 Diciembre 2010, 17:16 pm
por Littlehorse
Ayuda con problemas de array y vectores
Java
raleva 1 1,388 Último mensaje 5 Febrero 2016, 04:02 am
por esjuleta
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines