Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida no exercício de soma de números

Não consegui entender como funcionou a soma, pois no código está "soma = soma + i;", no código:

#include <stdio.h>
 int main() {

    int i; 
    int soma = 0;
    for (i = 1; i < 101; i++) {
        soma = soma + i;
        printf("A soma eh: %d\n", soma);
    }
}

Alguém pode me explicar?

2 respostas
solução!

oi Vinicius.

A linha soma = soma + i é a mais importante.

Ela diz que a variável que guarda a soma até agora fica valendo o valor dela de "antigamente" mais i.

Pense assim: na primeira iteração do laço (o loop do for), soma vale 0 e i vale 1.

Logo, quando você executa pela primeira vez soma = soma + i , ele faz com que soma = 0 + 1. Repare que apenas substitui os valores. Isso é, no final da primeira iteração, soma vale 1.

Vamos para a segunda iteração. Aqui a soma está valendo 1 e o i está valendo 2 pois foi feito i++ (lembre-se que o for é estranho mesmo, aquele terceiro pedaço dele é executado no final da iteração).

Então, ao fazer soma = soma + i , é o equivalente a soma = 1 + 2, e a soma fica valendo 3. Isso sucessivamente.

Se quiser deixar o código mais claro, diminua o for para fazer a soma só até i < 11 e, a cada iteração, imprima tanto o i quanto a soma antes mesmo de somar.

Muito obrigado, Paulo!