Corso IN110 Algoritmi e Strutture Dati

Gli esercizi

Testi e soluzioni di alcuni esercizi

Successione con pari e dispari

Leggere in input una sequenza A di numeri interi. Stampare in output la successione B calcolata secondo la seguente regola: b0 = a0, bi = bi-1 + ai se ai è pari, bi = bi-1 - ai se ai è dispari.

/*
**  successione.c
**
**  Leggere in input una sequenza A di n numeri interi. Stampare in
**  output la successione B calcolata secondo la seguente regola:
**
**    B(0) = A(0)
**    B(i) = B(i-1) + A(i) se A(i) e' pari
**    B(i) = B(i-1) - A(i) se A(i) e' dispari
**
**  Marco Liverani (liverani@mat.uniroma3.it) - Aprile 2001
*/

#include <stdlib.h>
#include <stdio.h>

#define MAX 100

/*
 *  Legge in input un vettore di interi. Restituisce il numero
 *  di elementi letti.
 */

int leggi_array(int V[]) {
  int i, n;

  printf("Numero di elementi: ");
  scanf("%d", &n);
  for (i=0; i<n; i++)
    scanf("%d", &V[i]);
  return(n);
}

/*
 *  Funzione principale.
 */

int main(void) {
  int i, n, x, A[MAX];
  n = leggi_array(A);
  x = A[0];
  printf("b[0] = %d\n", x);
  for (i=1; i<n; i++) {
    if (A[i] % 2 == 0)
      x = x + A[i];
    else
      x = x - A[i];
    printf("b[%d] = %d\n", i, x);
  }
  return(0);
}

Università degli Studi Roma Tre - Dipartimento di Matematica e Fisica - Corso di laurea in Matematica - Corso di Informatica 1 (IN110)

Author: Marco Liverani - Last modified: Saturday July 13, 2019 - URI: http://www.mat.uniroma3.it/users/liverani/IN1/20010404a.shtml