next up previous
Next: About this document ... Up: sol1 Previous: Questão 2 (valor: 3.0)

Questão 3 (valor: 3.0)

Escreva um programa em C que lê um inteiro $n \geq 2$ e uma seqüência com $n$ inteiros e verifica se a seqüência é uma progressão aritmética. Caso a seqüência seja uma progressão aritmética, o seu programa deve imprimir também a razão da progressão.


#include <stdio.h>
#define TRUE 1
#define FALSE 0

int main () {

  int n, ultimo, r, atual, cont, e_PA;

  printf("Entre com n: ");
  scanf("%d", &n);

  printf("Entre com o primeiro elemento: ");
  scanf("%d", &ultimo);

  printf("Entre com o segundo elemento: ");
  scanf("%d", &atual);

  e_PA = TRUE;
  r = atual - ultimo;
  ultimo = atual;

  for (cont = 3; cont <= n && e_PA == TRUE; cont++ ) {
        /* Lê próximo elemento */
        printf("Entre com o elemento %d: ", cont);
        scanf("%d", &atual);

        if (atual != ultimo + r)
          e_PA = FALSE;

        /* prepara proxima iteracao */
        ultimo = atual;
  }

  if (e_PA == TRUE)
        printf( "Sim, a sequencia dada e' uma PA com razao %d.\n", r);
  else
        printf( "Nao, a sequencia dada nao e' uma PA.\n" );

  return 0;
}


Cristina Gomes Fernandes
2001-09-17