• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

tuasite

Mais uma ajuda amigos: Soma dos 1ºs N numeros

9 mensagens neste tópico

boas amigos mais um código simples e a dar me a volta a cabeça, a questao é assim: Desenvolva um algoritmo que calcule o somatório de 1 ate um numero N. Sendo o valor N um valor fornecido pelo utilizador.

O código que fiz é este mas não funciona e não da erra. :wallbash:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i,n,soma;
printf("Digite um numero:\n");
scanf("%d",&n);
soma=0;
for (i=n;i<=1;i--)
soma=soma+i;
printf("A soma é %d ",i);
return 0;
}

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

experimenta, no for, trocar esse "i <= 1" por" i >= 1".

dessa forma se o número que introduzires for maior que um o ciclo não vai ser executado e o resultado nunca seria o correcto.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

a condição no ciclo estava mal como já disseram, o teu problema é que estás a apresentar o valor da variavel 'i' em vez da soma :P

já agora, a soma duma série de 1 a N é  dada por N*(N+1)/2

int n,soma;
printf("Digite um numero:\n");
scanf("%d",&n);
soma = n * (n+1) / 2 ;
printf("A soma é %d ", soma );

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas amigo o que me foi pedido foi isto, ate me foi dado o algoritmo:

Desenvolva um algoritmo que calcule o somatório de 1 ate um numero N. Sendo o valor N um valor

fornecido pelo utilizador.

NOME:Soma dos 1ºs N numeros.

i,n,soma:INTEIRO

INICIO

ESCREVER("Digite um numero:");

LER(n);

soma <- 0;

PARA i <- n ATE PASSO 1 FAZER

soma <- soma + i

FIMPARA

ESCREVER("A soma é",soma);

FIM

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

a condição no ciclo estava mal como já disseram, o teu problema é que estás a apresentar o valor da variavel 'i' em vez da soma :P

O problema é o que ele disse. Se fizeres printf da variável soma em vez de i vais ver que dá bem.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

#include <stdio.h>
#include <stdlib.h> 

int main(){
    int a, N, soma=0;
    printf("Introduza o limite superior do somatorio:");
    scanf("%d", &N);
    soma=((1+N)*N)/2;/*somatorio de uma progressao aritmetica de razao 1*/
    printf("O valor do somatorio e: %d", soma);
    return 0;
    }

   

Aqui está a solução para o problema.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso já tinha sido feito lá em cima. Não é isso que ele quer.

E já agora, é má política dar soluções completas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para além que vai contra todo o propósito do exercício. Que presumo que seja ensinar a usar ciclos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora