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);
}
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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);
}
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!