Niedson Santana Postado Novembro 6, 2017 Denunciar Share Postado Novembro 6, 2017 Olá Boa noite! Estou aprendendo a programar e estou com dúvidas nesse exercício: questão: Escreva um programa que calcule os N termos da série S abaixo: S = (1/3) + (2/6) + (3/9) + (4/12) + … O seu programa deve imprimir na saída padrão tanto os termos da série quanto o valor da soma com precisão de 2 casas decimais. exemplo: entrada: 8 saída: 1/3 + 2/6 + 3/9 + 4/12 + 5/15 + 6/18 + 7/21 + 8/24 2.67 fiz assim #include<stdio.h> main(){ int s,seg,pri; double div, res; scanf("%i", &s); for(pri=1; pri<=s; pri++){ seg=pri*3; div=pri/seg; res+=div; printf("%i/%i",pri,seg); if(pri<s) printf(" + "); } printf("\n%f", res); } consigo imprimir os termos certinho só que o resultado só sai um monte de zero . se alguém puder de dá uma ajuda eu agradeço muito. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 asantos38 Postado Novembro 6, 2017 Denunciar Share Postado Novembro 6, 2017 (editado) Boa tarde, Niedson. Olhando seu código verifiquei que você esqueceu de inicializar a variável "res" com zero antes de utilizá-la. Se você não inicializá-la antes de utilizar em uma expressão o próprio C atribui um valor qualquer para esta variável, o que gera erro. Quanto a imprimir formatado, se você quiser, por exemplo, imprimir um número como 27.58 você deve fazer: printf("%5.2f", res); onde o 5 é a quantidade total de dígitos mais o ponto(neste caso quatro números mais o ponto). e o 2 é quantidade de casas decimais(neste caso 58). Mas sua variável "res" foi declarada do tipo double.Neste caso você usa %lf e não %f. Beleza? Não esqueça de editar seu tópico e colocar [resolvido] se o problema for resolvido. Editado Novembro 6, 2017 por asantos38 acescentar informação Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Niedson Santana
Olá Boa noite!
Estou aprendendo a programar e estou com dúvidas nesse exercício:
questão:
Escreva um programa que calcule os N termos da série S abaixo:
S = (1/3) + (2/6) + (3/9) + (4/12) + …
O seu programa deve imprimir na saída padrão tanto os termos da série quanto o valor da soma com precisão de 2 casas decimais.
exemplo:
entrada: 8
saída:
1/3 + 2/6 + 3/9 + 4/12 + 5/15 + 6/18 + 7/21 + 8/24
2.67
fiz assim
#include<stdio.h>
main(){
int s,seg,pri;
double div, res;
scanf("%i", &s);
for(pri=1; pri<=s; pri++){
seg=pri*3;
div=pri/seg;
res+=div;
printf("%i/%i",pri,seg);
if(pri<s)
printf(" + ");
}
printf("\n%f", res);
}
consigo imprimir os termos certinho só que o resultado só sai um monte de zero . se alguém puder de dá uma ajuda eu agradeço muito.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.