2
respostas

Soma de 1 a 100

Por que está dando um erro de 100 a mais?

#include <stdio.h>



int main() {
int soma = 0;
int i = 1;
while (i<=100){
    i++;    
    soma = soma + i;

    }
    printf ("%d", soma);
}
2 respostas

Boa tarde Guilherme,

O problema é você está incrementando o i e depois incrementando a variável soma com o valor de i. Ou seja, sua soma está sendo incrementada de 2 em 2.

Para corrigir você pode fazer isso:

#include <stdio.h>

int main() {
int soma = 0;

  while (soma < 100){

    soma = soma + 1;

  }

  printf ("%d", soma);
}

Abraços

Olá, vamos observar o que o seu while está fazendo:

while (i<=100){
    i++;    
    soma = soma + i;
    }

Observe que ele está incrementando o i em uma unidade e em seguida está somando i à variável soma. Então temos uma soma que vai de i=2 até i=101. Entendeu? Isso resulta em 100 unidades a mais do que a soma de i=1 até i=100.

Então como seria a forma correta? Devemos inverter as linhas que estão dentro do while, ficando o seguinte:

while (i<=100){    
    soma = soma + i;
    i++;
    }

Desta forma, temos primeiro a variável 'soma' é incrementada pela variável 'i' e em seguida a variável 'i' é incrementada em uma unidade. Ou seja, temos que a soma vai de i=1 até i=100.

Inverta essas linhas e veja o resultado =). Boa compilação!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software