Ir ao conteúdo
  • Cadastre-se

Dúvida em Exercício fácil


LucasLks

Posts recomendados

Fala galera,

Beleza?

Então, estou com dificuldade sobre um exercício fácil... =[

lá vai :

Escreva uma função que retorne a soma dos números inteiros divisíveis por 5 ou 7 existentes entre dois valores n1 en2, incluindo ambos se for o caso.Exemplo, se n1 for 10 e n2 for 21 o retorno será 80, pois 10 + 14 + 15 + 20 + 21 é igual a 80.

eu comecei a fazer, mas está dando errado :

int soma_div_5_7(int n1, int n2){

int a,b,c,d=0,e;
int fim, inicio;
inicio=n1;
fim=n2;
for (int i=inicio; i<=fim ; i++){
while (i%7==0 || i%5==0)
{
a=i;
cout <<" " << a << endl;
i++;
while (i%7==0 || i%5==0)
{
b=i;
cout <<" " << b << endl;
i++;
}
}
}
c=a+b;
cout << "A soma e' = " << c << endl;
return e;
}

int main()
{
int a,b;
cin >> a >> b;
cout << " \n __________________" << endl;
soma_div_5_7(a,;
return 0;
system ("pause");
}

Grato desde já;

Link para o comentário
Compartilhar em outros sites

O problema é que voce soma a+b só depois do for, então voce só vai somar o ultimo valor de a com o ultimo valor de b, e não todos os valores de a e b do intervalo.

Fora que voce está usando mais variáveis do que o necessário, voce não precisava por exemplo das variaveis fim e inicio, poderia utilizar direto n1 e n2. E usar 2 while encadeado ficou bem estranho, foi pra evitar ciclo de máquina? Acho que acabou ficando errado, pois o segundo while incrementa, e depois acaba o for, o que faz ele também incrementar, e voce pula um numero.

O d voce criou e nunca usou, e voce faz a função retornar e, que voce nunca atribui valor.

Segue código testado e funcionando

#include <cstdlib>
#include <iostream.h>

int soma_div_5_7(int intN1, int intN2){

int intSoma = 0;
for (int i = intN1; i <= intN2 ; i++)
{
if ((i % 7 == 0) || (i % 5 ==0))
{
intSoma = intSoma + i;
}
}
return intSoma;
}

int main()
{
int intN1,intN2, intResultado;
cin >> intN1 >> intN2;
intResultado = soma_div_5_7(intN1,intN2);
cout << "\nO resultado da soma e: " << endl;
cout << intResultado;
cout << "\n";
system ("pause");
return 0;
}

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para 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...