Ir para o conteúdo
Tomás Mendes

Aritmética (d)e ponteiros

Mensagens Recomendadas

Tomás Mendes    0
Tomás Mendes

Boa tarde,

Apreceu-me esta escolha múltipla e eu não consigo chegar à resposta que eles dizem.

A seguinte função recebe um vector a com L elementos, em que cada elemento é um vector de inteiros com dimensão C, e coloca no vector b a soma de valores de cada um dos vectores inteiros (i.e., b[0] tem a soma do vector guardado na posição 0 de a, b[1] tem a soma do vector guardado na posição 1 de a, etc.)

void soma_col(int *a[], int *b, int L, int C)
{
  int i,j;
  for (i = 0; i < L; ++i) b[i] = 0;
  for (i = 0; i < L; ++i)
    for(j = 0; j < C; ++j)
      ***********************
}

Qual das seguintes linhas de código deverá substituir a linha marcada com ** para que a função execute correctamente?

a. b[j];

b. b[j] += a[j][i ];

c. b[i ] += *(*(a+j)+i);

d. b[j] += *(*(a+j)+i);

e. b[j] += *(a+j+i);

Resposta certa é a c.

Alguém me consegue explicar porquê?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
karva    0
karva

Antes de mais, tu queres é meter esse valor na posição i do vector, uma vez que estás a visualizar a informação referente ao vector na posição i do vector principal.

Quanto ao resto, també acho que faria mais sentido fazer algo do estilo *(*(a+i)+j) e não como lá está...

Cumps

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rui Carlos    311
Rui Carlos

Ou a minha interpretação do enunciado está errada, ou também acho que devia ser *(*(a+i)+j) (que seria equivalente a a).

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Tomás Mendes    0
Tomás Mendes

Pois... exactamente o que eu pensei.

PS: karva, ou estou enganado ou já vi o teu nick em outro lado qualquer e também vais fazer este teste amanhã...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Baderous    31
Baderous

Ou a minha interpretação do enunciado está errada, ou também acho que devia ser *(*(a+i)+j) (que seria equivalente a a).

Bem me queria parecer, estava a achar estranho aquilo até porque já tinha feito o esquema e não estava a bater certo...

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


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade