Jump to content
i307

Trabalhar com ponteiro

Recommended Posts

i307

Boas ,

eu estou agora a começar a trabalhar com ponteiros e estava a tentar pôr isso nos vectores. O programa pretende receber os valores num vector , mostra-los e depois encontrar o maior.

#include <stdio.h>
#include <stdlib.h>

int prog4(int v[],int n){

    int a=0, i;

    while(i<n){

    if(v[i]>v[i+1]){
        if(a<v[i]){
            a=v[i];
            i++;
        }
    }

    else{
        a=v[i+1];
        i++;
    }
    }

    printf("O maior numero e' : %i",a);

    return a;

}

int prog1(int ** v){

    int n , i;

    printf("Numero de elementos com que deseja trabalhar\n");
    scanf("%i",&n);


    for(i=0;i<n;i++){
        scanf("%i",v[i]);
    }

    for (i=0;i<n;i++){
        printf("%i",v[i]);
    }

    printf("\n");

    return n;

}

int main()
{
    int n;
    int v[100];
    n=prog1(v);
    prog4(v,n);

return 0;

}

Qual o erro no programa?

Share this post


Link to post
Share on other sites
Xpirito
Qual o erro no programa?

Isso perguntamos nós...


Para perguntas idiotas, respostas estúpidas!

Share this post


Link to post
Share on other sites
Diutsu

Esse programa pode estar a rebentar me vários sítios.

Faz:

Compila para fazers debug, acrescentando a flag -g ao gcc. e depois faz "gdb a.out" (a.out é o nome do executável criado por omissão, se lhe ders outro nome muda). No gdb faz "run" para correr e ficas a saber onde está o erro.

Ah e não te esqueças que os warnings do compilador não são para ignorar. E tu sabes que quando lês um inteiro com o scanf tens de usar o & antes da variável onde o estás a guardar, não sabes?


XX SINFO - Semana Informática

Share this post


Link to post
Share on other sites
i307

Esse programa pode estar a rebentar me vários sítios.

Faz:

Compila para fazers debug, acrescentando a flag -g ao gcc. e depois faz "gdb a.out" (a.out é o nome do executável criado por omissão, se lhe ders outro nome muda). No gdb faz "run" para correr e ficas a saber onde está o erro.

Ah e não te esqueças que os warnings do compilador não são para ignorar. E tu sabes que quando lês um inteiro com o scanf tens de usar o & antes da variável onde o estás a guardar, não sabes?

sei , mas tava-me a dar erro e pensei que nos vectores não se usava o '&'.

Share this post


Link to post
Share on other sites
brunoais

Do ponto de vista do C:

Um vector (com uma posição) e um apontador são exatamente a mesma coisa.

Podes sempre enviar a referencia de um vector assim:

nomeDoVector

ou

&nomeDoVector[0]

ou (se a sintaxe permitir)

&*nomeDoVector

porque é o mesmo.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
Localhost

Estás a receber o início do vector com um ponteiro para ponteiro, quando deverias receber apenas com um ponteiro.

int prog1 (int *v)


here since 2009

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.