Série de sequência de números
Fiz o exercício, mas não sei porque não está funcionando.
{ Escreva um algoritmo que calcule e escreva a soma dos dez primeiros termos da seguinte serie: 2/500 - 5/450 + 2/400 - 5/350 + ... }
#include <iostream>
#include <cstdlib>
#include <stdio.h>
using namespace std;
int main()
{
setlocale(LC_ALL, "Portuguese");
int i, denominador;
float s;
denominador = 500;
s = 0;
for (i=1;i<=10;i++)
{
if ((i % 2) != 0)
{
s = s + (2/denominador);
}
else
{
s = s - (5/denominador);
}
denominador = denominador - 50;
cout << s << "/" << denominador;
}
return 0;
}
D sempre 0250. Não descubro o erro.
{ Escreva um algoritmo que calcule e escreva a soma dos dez primeiros termos da seguinte serie: 2/500 - 5/450 + 2/400 - 5/350 + ... }
#include <iostream>
#include <cstdlib>
#include <stdio.h>
using namespace std;
int main()
{
setlocale(LC_ALL, "Portuguese");
int i, denominador;
float s;
denominador = 500;
s = 0;
for (i=1;i<=10;i++)
{
if ((i % 2) != 0)
{
s = s + (2/denominador);
}
else
{
s = s - (5/denominador);
}
denominador = denominador - 50;
cout << s << "/" << denominador;
}
return 0;
}
D sempre 0250. Não descubro o erro.
Paulo Kutwak
Curtidas 0
Melhor post
Fernando Duwe
23/07/2018
Paulo,
No seu if (if ((i % 2) != 0)), não seria, if ((i % 2) == 0)? Uma vez que os pares deverão dividir 2/ denominador.
No seu if (if ((i % 2) != 0)), não seria, if ((i % 2) == 0)? Uma vez que os pares deverão dividir 2/ denominador.
GOSTEI 2
Mais Respostas
Paulo Kutwak
23/07/2018
É isso mesmo, a configuração do compilador estava errada. Quase tudo certo, só falta eu descobrir porque o numerador não está sendo alterado. Valeu. Depois coloco a resposta.
GOSTEI 0
Paulo Kutwak
23/07/2018
Achei a resposta:
#include <stdio.h>
int main() {
int denominador = 500;
float s = 0;
for (int i=1; i<=10; i++) {
if ((i % 2) != 0)
s = s + (2 / float(denominador));
else
s = s - (5 / float(denominador));
denominador = denominador - 50;
}
printf("S = 2/500 - 5/450 + 2/400 - 5/350 + ...");
printf("\\n\\n");
printf("S = %10.7f\\n", s);
}
Não entendi porque fazer a conversão para float, e se fosse tudo inteiro? Coloquei tudo inteiro e não funcionou.
#include <stdio.h>
int main() {
int denominador = 500;
float s = 0;
for (int i=1; i<=10; i++) {
if ((i % 2) != 0)
s = s + (2 / float(denominador));
else
s = s - (5 / float(denominador));
denominador = denominador - 50;
}
printf("S = 2/500 - 5/450 + 2/400 - 5/350 + ...");
printf("\\n\\n");
printf("S = %10.7f\\n", s);
}
Não entendi porque fazer a conversão para float, e se fosse tudo inteiro? Coloquei tudo inteiro e não funcionou.
GOSTEI 0
Paulo Kutwak
23/07/2018
Ainda não é isso. está mostrando um valor com ponto decima, tem de mostrar fração e está dando 0 no numerador. Ainda vou descobrir.
GOSTEI 0