viciado 1 Denunciar post Postado Novembro 22, 2008 Programa que receba inteiro positivo N e retorne a soma dos numeros inteiros existentes entre 1 e N #include <stdio.h> #include <stdlib.h> int soma(int n){ int i; int soma; for(i=1;i<=n;i++){ soma = 1 + n; } return(soma); } int main() { int n; printf("Digite o valor de N \n"); scanf("%d",&n); printf("O valor da soma e \n %d",soma(n)); system("PAUSE"); return 0; } Qual o problema pq a resposta é errada Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Novembro 22, 2008 Porque a função está errada. Olha o que você está fazendo... Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Novembro 22, 2008 Porque a função está errada. Olha o que você está fazendo... Como? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 22, 2008 Analise com cuidado o seu código. Tente executá-lo no papel para entender o erro. Você está criando uma variável "soma" a cada iteração do loop Inicie "soma", fora do loop, com o valor zero. Dentro do loop, você vai somando a essa variável o valor de N. Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Novembro 22, 2008 Você está criando uma variável "soma" a cada iteração do loop Ele não está criando uma variável a cada iteração. Inicie "soma", fora do loop, com o valor zero. Dentro do loop, você vai somando a essa variável o valor de N. Se ele fizer isso, vai ter N2 e não a soma dos inteiros de 1 a N. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 22, 2008 Você está criando uma variável "soma" a cada iteração do loop Ele não está criando uma variável a cada iteração. Desculpe-me... :rolleyes:Estará reiniciando-a a cada iteração. Inicie "soma", fora do loop, com o valor zero. Dentro do loop, você vai somando a essa variável o valor de N. Se ele fizer isso, vai ter N2 e não a soma dos inteiros de 1 a N. De N não, de i.Que erro feio... http://forum.imasters.com.br/public/style_emoticons/default/blush.gif Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Novembro 23, 2008 Você está criando uma variável "soma" a cada iteração do loop Ele não está criando uma variável a cada iteração. Desculpe-me... :rolleyes:Estará reiniciando-a a cada iteração. Inicie "soma", fora do loop, com o valor zero. Dentro do loop, você vai somando a essa variável o valor de N. Se ele fizer isso, vai ter N2 e não a soma dos inteiros de 1 a N. De N não, de i.Que erro feio... http://forum.imasters.com.br/public/style_emoticons/default/blush.gif #include <stdio.h> #include <stdlib.h> int soma(int n){ int i; int soma; soma = 0; while(i<=n){ soma = 1 + i; i++; } return(soma); } int main() { int n; printf("Digite o valor de N \n"); scanf("%d",&n); printf("O valor da soma e \n %d",soma(n)); system("PAUSE"); return 0; } Ainda nao funciona pq qualquer numero que eu coleque a resposta e n+1 Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Novembro 23, 2008 Pare dar dar quote no tópico inteiro. É sacal rolar td pra ler uma linha ou duas. Pegue um lápis e um papel e execute esse while p/ você ver o que está fazendo errado... Compartilhar este post Link para o post Compartilhar em outros sites
José Enésio 4 Denunciar post Postado Novembro 23, 2008 Para realizar uma soma você utiliza o operador +=, ou repete a variável na soma: soma += i, ou soma = soma + i. Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Novembro 23, 2008 Para realizar uma soma você utiliza o operador +=, ou repete a variável na soma: soma += i, ou soma = soma + i. #include <stdio.h> #include <stdlib.h> int soma(int n){ int i; int soma; soma = 0; for(i=1;i<=n;i++){ soma = soma + i; } return(soma); } int main() { int n; printf("Digite o valor de N \n"); scanf("%d",&n); printf("O valor da soma e \n %d",soma(n)); system("PAUSE"); return 0; } Obrigado. Resolvido Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 23, 2008 soma = soma + i; pode trocar por soma += i; Isso que o José Enésio quis dizer com "operador +=" Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Novembro 23, 2008 A sim obrigado. E que eu to aprendendo por isso nao sei os detalhes Compartilhar este post Link para o post Compartilhar em outros sites