Ir ao conteúdo

Posts recomendados

Postado

Olá meus caros podem me ajudar com esse algoritmo?

 

Um procedimento que calcule o somatório de todos os números pares em um
intervalo definido pelo usuário. O procedimento deve ter 2 parâmetros definidos
por valor (início e fim). Ex: para inicio = 2 e fim = 10 o somatório é
2+4+6+8+10.

Postado

Olá, meu caro, eu fiz desta forma só ele somou só não consegui colocar um valor final

#include <stdio.h>#include <stdlib.h>int a,b,r; //Variavel do modulovoid entrada(){printf ("Digite A: \n");scanf ("%d",&a);printf ("Digite B: \n");scanf ("%d",& ;}int pares (){    r=a+b;        return(r);}main (){int res;entrada ();res=pares();    printf ("O resultado: %d",pares());system ("pause");}
  • Membro VIP
Postado

Me assusto com funções recursivas rsrs.

Vou dar uma olhada aqui.


@gprilopes

Considerando que pares positivos começam em 2, ficaria assim:

#include <stdio.h>#include <stdlib.h> int soma(int n){    if(n == 2)        return 2;    else        return ( n + soma(n-2) );} int main(){    int n;    printf("Digite um inteiro positivo = ");    scanf("%d", &n);     printf("Soma: %d\n", soma(n));    getch();    return 0;}

Você precisa criar uma restrição para números abaixo de 2.

 

Se precisar definir o parâmetro menor, você precisará testar o número par imediatamente após ele, caso ele não seja o par. E depois substituir o número 2 por esse valor, dentro da função soma.

Postado

Eu fiz desta forma, mas acho que esta somando alguem a mais, consegue dar uma olhada?

#include <stdio.h>#include <stdlib.h>int a,b,r,i; //Variavel do modulovoid entrada(){printf ("Digite A: \n");scanf ("%d",&a);printf ("Digite B: \n");scanf ("%d",&;}int pares (){    for ( a = 0 ; a < b ; a++ )    {        if (a % 2 == 0)                r = r + a;    }        return(r);}main (){int res;entrada ();res=pares();    printf ("O resultado: %d",pares());system ("pause");}Eu estou usando um for, mas ainda assim esta somando algo errado, consegue ver?#include <stdio.h>#include <stdlib.h>int a,b,i,r; //Variavel do modulovoid entrada(){printf ("Digite A: \n");scanf ("%d",&a);printf ("Digite B: \n");scanf ("%d",&;}int pares (){    for ( i = a ; i < b ; i++ )    {        if (i % 2 == 0)                r = r + i;    }        return(r);}main (){int res;entrada ();res=pares();    printf ("O resultado: %d\n",pares());system ("pause");}
  • Membro VIP
Postado

@gprilopes

use a tag code, para que os códigos não venham com os emojis do fórum.

http://forum.clubedohardware.com.br/forums/topic/1136628-tags-code-como-e-para-que-usar/#entry6250010


@gprilopes

 

Você estava usando o método pares() duas vezes, causando erro na resposta:

 

Remova a linha:

res=pares();

E apague a declaração da variável res, que não tem uso.

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!