Media oltre la soglia

di il
12 risposte

Media oltre la soglia

Salve, è da ormai 4 mesi che programmo in c++ (seconda superiore) e mi è stato affidato un compito che mi sta facendo impazzire. La richiesta è la seguente: Scrivi un programma che, presi in input il numero N (N>0) di valori e il valore S di soglia, calcoli la media aritmetica di tutti i numeri presi in input che non superano il valore della soglia. N deve essere letto in input. L'esercizio infine mi chiede di utilizzare il ciclo for. Questo è il mio codice:

#include <iostream>
using namespace std;
main() {
int N, S, media, tot, conta;
S = 10;
tot = 0;
for(conta = 1; conta <= 5; conta ++){
cout << "Inserisci un numero : ";
cin >> N;
tot = tot + N;}
if (N > 0 && N <= S){
media = (tot / 5);
cout << "La media dei numeri che non superano la soglia e' di: " << media;}
else{
cout << "Il numero non e' maggiore di zero o non rientra nella soglia!";

ringrazio tutti coloro che risponderanno in anticipo.

12 Risposte

  • Re: Media oltre la soglia

    Perché il conteggio nella for fino a 5? Chi te lo ha detto?

    Il compito parla di N elementi.

    Il ciclo for deve andare da 1 a N e il valore N deve essere chiesto una sola volta PRIMA del ciclo for (non dentro).

    All'interno del ciclo devi usare in input un'altra variabile (magari double, così come tot deve essere double) per inserire i valori.
  • Re: Media oltre la soglia

    oregon ha scritto:


    Perché il conteggio nella for fino a 5? Chi te lo ha detto?

    Il compito parla di N elementi.

    Il ciclo for deve andare da 1 a N e il valore N deve essere chiesto una sola volta PRIMA del ciclo for (non dentro).

    All'interno del ciclo devi usare in input un'altra variabile (magari double, così come tot deve essere double) per inserire i valori.
    grazie per avermi risposto, ora lo miglioro ma il problema che avevo è che mi faceva la media di tutti i numeri mentre il problema dice di scartare quelli maggiori della soglia che è 10.
  • Re: Media oltre la soglia

    La if deve stare nella for e devi fare la somma con tot SOLO se il numero inserito è minore o uguale a S
  • Re: Media oltre la soglia

    oregon ha scritto:


    La if deve stare nella for e devi fare la somma con tot SOLO se il numero inserito è minore o uguale a S
    ma se metto l'if dentro il ciclo for mi ripete anche il cout e non mi considera l'else perchè mi dice che non c'è un if precedente
  • Re: Media oltre la soglia

    Non ho capito cosa dici. Mostra il codice con le modifiche, indenta il codice e usa i tag code per riportarli sul forum
  • Re: Media oltre la soglia

    oregon ha scritto:


    Non ho capito cosa dici. Mostra il codice con le modifiche, indenta il codice e usa i tag code per riportarli sul forum
    scusa non ho capito come riportare il codice dome dici tu. cmq riesco a fartelo vedere con le modifiche:

    #include <iostream>
    using namespace std;
    main() {
    int N, S, media, conta;
    double tot, num;
    S = 10;
    tot = 0;
    cout << "Inserisci il numero di valori con i quali il programma fara' una media: ";
    cin >> N;
    for(conta = 1; conta <= N; conta ++){
    cout << "Inserisci il valore: ";
    cin >> num;
    tot = tot + num;}
    if (num > 0 && num <= S){
    media = (tot / N);
    cout << "La media dei numeri che non superano la soglia e' di: " << media;}
    else{
    cout << "Il numero non e' maggiore di zero o non rientra nella soglia!";
    }
    }
  • Re: Media oltre la soglia

    La if DENTRO al ciclo per controllare se eseguire la somma
  • Re: Media oltre la soglia

    oregon ha scritto:


    La if DENTRO al ciclo per controllare se eseguire la somma
    scusa se ti rispondo ora ma ho avuto tanto da fare. Comunque ho capito e ti ringrazio molto. Avrei solo un'altra domanda, come vedi neò codice metto "inserisci un valore: " ma io vorrei mettere "Inserisci il primo valore: ", "Inserisci il secondo valore:" etc ma col ciclo for mi ripete sempre "Inserisci il primo valore: ". Nel c metto %d, %f in base alle variabili mentre nel c++ non so come fare.
  • Re: Media oltre la soglia

    Usa il cout con le variabili.
  • Re: Media oltre la soglia

    oregon ha scritto:


    Usa il cout con le variabili.
    scusa ma non ho capito bene cosa devo fare
  • Re: Media oltre la soglia

    cout<<"Inserisci il "<<conta<<" valore: ";
  • Re: Media oltre la soglia

    Alexv ha scritto:


    cout<<"Inserisci il "<<conta<<" valore: ";
    ah ok grazie mille
Devi accedere o registrarti per scrivere nel forum
12 risposte