augustotn 1 Denunciar post Postado Setembro 29, 2009 bem, eu sei que já existe um tópico explicando como se resolve esse problema. Mas eu gostaria de saber o que há de errado nesse código especificamente. minha intenção era fazer a soma dos números pares entre 1 e um número digitado. caso seja digitado 6, por exemplo, o resultado deveria ser 12 (2+4+6). int main(void) { int n,soma,b=2,i=0; printf("digite um num natural\n"); scanf("%d",&n); while(i<=n) { i=i+2; soma=soma+b; b=b+2; } printf("a soma dos num pares e' %d\n",soma); system("pause"); return 0; } Compartilhar este post Link para o post Compartilhar em outros sites
VictorCacciari 42 Denunciar post Postado Setembro 29, 2009 Cara, você não precisa de tantas variáveis... Dei uma mudada, olhe: #include <stdlib.h> #include <stdio.h> int main(void) { int soma, i, lim; printf("Digite o limite: "); scanf("%d%*c", &lim); soma = 0; for (i=0; i<=lim; i+=2) soma += i; printf("A soma de todos os nu'meros pares ate' %d e': %d\n", lim, soma); return 0; } Mas o problema com o teu código, além da lógica estar errada, é que você usa a variável "soma" antes de inicializá-la, quando dizes: "soma = soma + b". Compartilhar este post Link para o post Compartilhar em outros sites
augustotn 1 Denunciar post Postado Setembro 29, 2009 obrigado pela ajuda. no meu código, mesmo quando eu inicializo 'soma', dá errado. realmente eu criei uma variável desnecessára. valeu :D ah, vi agora, eu consegui fazer o meu código rodar, é só inicializar i=2 e nao i=0. valeu aí. Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Outubro 1, 2009 Ou, só pra constar, int main() { int n = 7; int soma = n*n+n; } Compartilhar este post Link para o post Compartilhar em outros sites