Solução em C do Problema 12

#include <stdio.h>

#define TAMANHO 1000

int main() {
  float soma1, soma2, soma3, soma4;
  float negativos, positivos;
  int i, sinal;
  
  /* Soma da direita para a esquerda */
  soma1 = 0;
  sinal = -1;
  for (i = TAMANHO; i > 0; i--){
    soma1 = soma1 + (float) sinal/i;
    sinal = -sinal;
  }
  
  /* Soma da esquerda para a direita */
  soma2 = 0;
  sinal = 1;
  for (i = 1; i <= TAMANHO; i++){
    soma2 = soma2 + (float) sinal/i;
    sinal = -sinal;
  }
  
  /* adição separada dos termos positivos e dos */
  /* termos negativos da esquerda para a direita */
  
  negativos = 0;
  positivos = 0;
  
  for (i = 1; i <= TAMANHO; i++)
    if (i % 2 == 1)
      positivos += (float) 1/i;
    else
      negativos += (float) 1/i;
  soma3 = positivos - negativos;
  
  /* Adição separada dos termos positivos e dos */
  /* termos negativos da direita para a esquerda */
  
  negativos = 0;
  positivos = 0;
  
  for (i = TAMANHO; i > 0; i--)
    if (i % 2 == 1)
      positivos += (float) 1/i;
    else
      negativos += (float) 1/i;
  soma4 = positivos - negativos;
  
  printf("Primeira soma = %.20g\n", soma1);
  printf("Segunda  soma = %.20g\n", soma2);
  printf("Terceira soma = %.20g\n", soma3);
  printf("Quarta   soma = %.20g\n", soma4);
  
  return 0;
}


Lista de Problemas

História da Computação | Listas de Exercícios | Problemas Resolvidos | macmulti@ime.usp.br