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


 


Tema destacado: Sigue las noticias más importantes de elhacker.net en ttwitter!


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Ayuda uso de punteros.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda uso de punteros.  (Leído 208 veces)
laurinhabig0

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Ayuda uso de punteros.
« en: 20 Noviembre 2017, 18:38 »

Necesito ayuda con este fragmento de código:

Código:
#include <stdio.h>

int *maximo(int vec[],int num){
    int *pmax = &vec[0];
    for (int i=0;i<num-1;i++){
        if(vec[i]<vec[i+1]){
            pmax++;
        }
    }
   
    return pmax;
}

int main() {
    int N;
       
    printf("Introduza o número de elementos do vector:\n");
    scanf("%d",&N);
       
    while(N<1){
    printf("ERRO. Introduza un número de elementos válido:\n");
    scanf("%d",&N);
    }
   
    int v[N];
   
    for(int i=0;i<N;i++){
        printf("Introduza un enteiro para a posición v[%d]:\n",i);
        scanf("%d",&v[i]);
    }
   
    printf("O máximo é %d\n",*maximo(v,N));
}

El ejercicio consiste en calcular el máximo de un vector de enteros con una función que se encuentre fuera del main y que devuelva un puntero a la posición del máximo. El código compila sin problemas pero al ejecutarlo falla en el cálculo del máximo, a ver si me echáis una mano y veis lo que está mal :( muchas gracias de antemano!!


En línea

calantra

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Ayuda uso de punteros.
« Respuesta #1 en: 20 Noviembre 2017, 20:53 »

Código:
int *maximo(int vec[],int num){
    int *pmax = &vec[0];
    int valormi=vec[0];
    for (int i=1;i<num;i++){
        if(vec[i]>valormi){
            valormi=vec[i];
            pmax=&vec[i];
        }
    }

    return pmax;
}

De nada.
P.D. valormi representa el valor Máximo Inicial. Se actualiza cada vez que encuentra un numero mayor, en ese momento guarda la dirección del puntero del vector actual en pmax. En tu código avanzaba pmax siempre que el siguiente número al actual controlado fuera menor, incluso si los anteriores fueran mayores, apuntando erróneamente al número incorrecto.


« Última modificación: 20 Noviembre 2017, 21:44 por calantra » En línea

laurinhabig0

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Ayuda uso de punteros.
« Respuesta #2 en: 21 Noviembre 2017, 14:29 »

Muchísimas gracias!!!!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda punteros « 1 2 »
Programación C/C++
Leber 17 3,480 Último mensaje 19 Diciembre 2007, 20:50
por Eternal Idol
[Ayuda]con punteros en asm
ASM
ny0x 4 4,547 Último mensaje 12 Mayo 2009, 21:45
por ny0x
Ayuda punteros. [c++]
Programación C/C++
ninto33 3 2,514 Último mensaje 19 Enero 2011, 01:46
por ninto33
Duda Punteros Dobles/Array de punteros
Programación C/C++
MisterJava 2 2,402 Último mensaje 30 Diciembre 2012, 20:19
por MisterJava
ayuda con punteros de C
Programación C/C++
LeoJ24 1 502 Último mensaje 11 Enero 2013, 18:13
por durasno
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines