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);
}
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!