PiR2
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

(1) Programação em C++

2 participantes

Ir para baixo

(1) Programação em C++  Empty (1) Programação em C++

Mensagem por Christian M. Martins Sex 19 Fev 2016, 15:17

What is the output of this code?
int a[3] = { 9, 3, 4 };
for (int i=2; i>0; i--) {
 a[0]+=a[i];
}
cout << a[0];


Gabarito:


Por que 2? Podem me explicar minunciosamente?
Christian M. Martins
Christian M. Martins
Grupo
Velhos amigos do Fórum

Grupo Velhos amigos do Fórum

Mensagens : 3776
Data de inscrição : 15/09/2014
Idade : 26
Localização : Rio Grande do Sul

http://www.instagram.com/chriestianmm

Ir para o topo Ir para baixo

(1) Programação em C++  Empty Re: (1) Programação em C++

Mensagem por Matheus José Sex 19 Fev 2016, 18:05

Impossível ser 2.
Primeiro você criou uma array com 3 índices {9,3,4} o índice 0 é o número 9. Na programação começamos a contar do 0.
Dentro do for você definiu uma var com valor 2 e disse que enquanto ela for maior do que zero você somará um valor de a do índice i à a[0], e a cada ciclo i perde 1. Assim:
1°) Você somou 9 + 4, a[0] passou a ser 13
2°) Você somou 13 + 3, a[0] passou a ser 16
Fim do ciclo porque i não é maior que zero, i = 0.
Mostrar 16 como valor final.
--------------------
Para ser 2 como valor final deveria ser:

int a[3] = { 9, 3, 4 };
for (int i=2; i>0; i--) {
 a[0]-=a[i]; // - ao invés de+ aqui.
}
cout << a[0];
Matheus José
Matheus José
Mestre Jedi
Mestre Jedi

Mensagens : 630
Data de inscrição : 29/10/2015
Idade : 25
Localização : Santos

Ir para o topo Ir para baixo

(1) Programação em C++  Empty Re: (1) Programação em C++

Mensagem por Christian M. Martins Sex 19 Fev 2016, 18:31

Por que somar +4 e +3 a 9 e 13, respectivamente, nos passos "1º" e "2º" que você postou?

PS: me enganei, é "-" no lugar de "+" mesmo.
Christian M. Martins
Christian M. Martins
Grupo
Velhos amigos do Fórum

Grupo Velhos amigos do Fórum

Mensagens : 3776
Data de inscrição : 15/09/2014
Idade : 26
Localização : Rio Grande do Sul

http://www.instagram.com/chriestianmm

Ir para o topo Ir para baixo

(1) Programação em C++  Empty Re: (1) Programação em C++

Mensagem por Matheus José Sex 19 Fev 2016, 18:33

O for irá rodar o ciclo duas vezes.
3 e 4 são os índices 1 e 2 de a respectivamente.
1 e 2 são os valores que i assume.

edit: no caso subtrair já que o sinal é -.
Matheus José
Matheus José
Mestre Jedi
Mestre Jedi

Mensagens : 630
Data de inscrição : 29/10/2015
Idade : 25
Localização : Santos

Ir para o topo Ir para baixo

(1) Programação em C++  Empty Re: (1) Programação em C++

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos