Vettori - Verifica

Testo della verifica e soluzione

Uno

Dato un vettore di N numeri, già inserito e una posizione p fornita dall’utente, calcola la somma dei valori contenuti dalla posizione p fino alla fine del vettore. Ci sono casi particolari da verificare?

Due

Dato un vettore di N numeri, già inserito, crea un programma che chieda all’utente di inserire un numero num e lo inserisca nella prima posizione spostando gli altri in avanti e stampando a video l’elemento che esce dal vettore.

Tre

In questi giorni di pioggia ilMeteo.it tiene traccia di tutte le precipitazioni, giorno per giorno, in millimetri delle città italiane. Il capo del sito vuole scrivere un servizio sulla piovosità di Milano e Roma e ha bisogno di sapere se ha piovuto più a Milano o a Roma nel mese di Ottobre. Ovviamente i dati della piovosità di ogni città sono memorizzati in un vettore.

Schema della soluzione:

#include <iostream>

#define N 5

using namespace std;

int main(int argc, char** argv) {
    int v[N] = {3,7,11,2,5};
    int v2[N] = {4,8,3,0,10};
    int p, s=0, num, s2;
    
    // Esercizio 1
    do {
        cout << "Inserisci una posizione coompresa tra 0 e 4: ";
        cin >> p;
    } while (p>N-1 || p<0);
    for (int i=p; i<N; i++) {
        s = s + v[i];
    }
    cout << "La somma delle ultime " << 5-p << " posizioni vale: " << s << endl;
    
    // Esercizio 2
    // Stampo il vettore iniziale
    for (int i=0; i<N; i++) {
        cout << v[i] << " ";
    }
    cout << endl << "Inserisci un valore da mettere nella prima posizione: ";
    cin >> num;
    // Salvo il numero che sarà cancellato
    s = v[N-1];
    for (int i=N-1; i>0; i--) {
        v[i] = v[i-1];
    }
    v[0] = num;
    // Stampo il vettore modificato
    for (int i=0; i<N; i++) {
        cout << v[i] << " ";
    }
    // Stampo il numero eliminato
    cout << " esce: "<< s << endl;
    
    // Esercizio 3
    // Sommo tutte le precipitazioni di v, sommo tutte le precipitazioni di v2 e poi mostro dove ha piovuto di più
    s = 0; s2 = 0;
    for (int i=0; i<N; i++) {
        s = s + v[i];
        s2 = s2 + v2[i];
    }
    if (s>s2) {
        cout << "Ha piovuto di piu' nella citta' uno";
        } else if (s==s2) {
        cout << "Nelle due citta' ha piovuto la stessa quantità d'acqua";
        } else {
        cout << "Ha piovuto di piu' nella citta' due";
    }
    
    return 0;
}