• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Danicas

Dúvida em código (vectores e apontadores)

4 mensagens neste tópico

Boas pessoal !

É assim eu tenho o seguintes código c:

#include <stdio.h>
#define MAX_NUM 5

void main () {

    int vector[MAX_NUM]={1,1};
    int *valor, i;

    valor=vector;
    
    for (i=2; i<MAX_NUM; i++) {
            *(valor+2) = *valor + *++valor; }

    for(i=0, i<MAX_NUM; i++) {
            printf( "%d", vector[i]); }
}

E este código vai imprimir o seguinte resultado:

11235

E a minha dificuldade é mesmo na interpretação deste código, ou seja, não consigo perceber de onde vêm os valores 2 3 e 5.

Se alguém me souber explicar o funcionamento desse código agradeço imenso  :(

   

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quando fica difícil de perceber essas coisas, pegue um papel e "execute" o algoritmo no papel.

Vamos lá!

array = [1, 1, 0, 0, 0]
valor = array[0]
i = 2
primeira iteração do loop:
     array[0+2] = array[0] + array[1] // 1 + 1 = 2.
i = 3
segunda iteração:
    array[1+2] = array[1] + aray[2] // 1 + 2 = 3
...
...
etc...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já eu estava farta de fazer esquemas e desenhos à volta desse código para tentar perceber e nada! O meu problema foi perceber a iteração que está dentro do primeiro for.

Mas finalmente percebi  :(

Muito obrigada pela ajuda !

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora