Esercizio array c++ aiuto

di il
18 risposte

Esercizio array c++ aiuto

1. Inserire dei numeri interi in
un array


1. Visualizzare gli elementi di
un array


2. Calcolare la media aritmetica
delle componenti in posizione dispari


3. Calcolare la media aritmetica
delle componenti in posizione pari

#include <iostream>
using namespace std;
#define N 3 

int main() {
  int arr[N];


  for (int i = 0; i < N; i++) {
   cout << "Inserisci il valore dell'elemento in posizione " << i << ": ";
   cin >> arr[i];
  }


  for (int i = 0; i < N; i++) {
  cout<<"Elemento in posizione " << i << ": " << arr[i] <<endl;
  }


  float media_pari = 0, media_dispari = 0;
  for (int i = 0; i < N; i++) {
    if (i % 2) media_dispari=arr[i];
    else media_pari=arr[i];
  }
  media_dispari= N / 2;
  media_pari= N / 2 + (N % 2);

  return 0;
}

NON CAPISCO PERCHE LA MEDIA ARITMETICA NON VA

18 Risposte

  • Re: Esercizio array c++ aiuto

    Per fare la media serve la somma. Non vedo somme lì.
  • Re: Esercizio array c++ aiuto

    Alexv ha scritto:


    Per fare la media serve la somma. Non vedo somme lì.
    come faccio a fa la media delle posizioni pari e dispare con la somma?
  • Re: Esercizio array c++ aiuto

    Utilizzi due somme diverse

    Quel codice non ha senso
  • Re: Esercizio array c++ aiuto

    oregon ha scritto:


    Utilizzi due somme diverse

    Quel codice non ha senso
    Almeno hai letto la consegna dell'esercizio?? Non ha senso perché? è così che chiede la consegna
  • Re: Esercizio array c++ aiuto

    Sei tu che non ha letto la consegna.

    Magari ci spieghi che senso hanno quelle divisioni di N alla fine. E dove stanno le somme dei pari w del dispari.
  • Re: Esercizio array c++ aiuto

    oregon ha scritto:


    Sei ti che non ha letto la consegna.
    
    float mediaDispari(int array[N]){
        float somma = 0;
        for (int i  = 0; i < N; i += 2){
            somma += array[i];
        }
        return somma / (N/2) ;
    }
    
    float mediaPari(int array[N]){
        float somma = 0;
        for (int i = 1; i < N; i += 2){
            somma += array[i];
        }
        return somma / (N/2) ;
    }
    
    Così va bene??
  • Re: Esercizio array c++ aiuto

    Molto meglio, ora ha un senso.

    Ma devi ringraziare CrazyMonk e St3ve ...

    https://www.inforge.net/forum/threads/esercizio-arrey-aiuto.610181/

    E dato che hai fatto la domanda

    +=

    equivale a

    somma = somma + array[ i ];
  • Re: Esercizio array c++ aiuto

    Sì ma è sbagliato lo stesso

    (N/2) fa 1 se N è 3
  • Re: Esercizio array c++ aiuto

    Weierstrass ha scritto:


    Sì ma è sbagliato lo stesso

    (N/2) fa 1 se N è 3
    cosa ci dovrei mettere?
  • Re: Esercizio array c++ aiuto

    oregon ha scritto:


    Molto meglio, ora ha un senso.

    Ma devi ringraziare CrazyMonk e St3ve ...

    https://www.inforge.net/forum/threads/esercizio-arrey-aiuto.610181/

    E dato che hai fatto la domanda

    +=

    equivale a

    somma = somma + array[ i ];
    
    using namespace std;
    #define N 3
    
    int main() {
      int arr[N];
    
    
      for (int i = 0; i < N; i++) {
       cout << "Inserisci il valore dell'elemento in posizione " << i << ": ";
       cin >> arr[i];
      }
    
    
      for (int i = 0; i < N; i++) {
      cout<<"Elemento in posizione " << i << ": " << arr[i] <<endl;
      }
    
    
    
    float mediaDispari(int array [N]){
        float somma = 0;
        for (int i  = 0; i < N; i += 2){
            somma += array[i];
        }
        return somma / (N/2) ;
    }
    
    
    float mediaPari(int arr[N]){
        float somma=0;
        for (int i = 1; i < N; i+=2){
            somma += array[i];
        }
        return somma / (N/2) ;
    }
    
    }
    
    nella riga 21 mi dice questo errore dove c'è in pratica float mediaDispari [Error] a function-definition is not allowed here before '{' token
  • Re: Esercizio array c++ aiuto

    Non puoi dichiarare una funzione dentro un'altra funzione. Nemmeno il minimo sindacale vuoi studiare?
    
    #include <iostream>
    using namespace std;
    #define N 3
    
    float mediaDispari(int array[N]);
    float mediaPari(int array[N]);
    
    int main() {
      int arr[N];
    
      for (int i = 0; i < N; i++) {
       cout << "Inserisci il valore dell'elemento in posizione " << i << ": ";
       cin >> arr[i];
      }
      for (int i = 0; i < N; i++) {
        cout << "Elemento in posizione " << i << ": " << arr[i] << endl;
      }
      
      cout << "Media dispari " << mediaDispari(arr) << endl;
      cout << "Media pari " << mediaPari(arr) << endl;  
      
      return 0;
    }
    
    float mediaDispari(int array[N]){
        int i;
        float somma = 0;
        for (i  = 0; i < N; i += 2){
            somma += array[i];
        }
        return somma / (i/2);
    }
    
    float mediaPari(int array[N]){
        int i;
        float somma=0;
        for (i = 1; i < N; i += 2){
            somma += array[i];
        }
        return somma / (i/2);
    }
    
  • Re: Esercizio array c++ aiuto

    Weierstrass ha scritto:


    Non puoi dichiarare una funzione dentro un'altra funzione. Nemmeno il minimo sindacale vuoi studiare?
    
    #include <iostream>
    using namespace std;
    #define N 3
    
    float mediaDispari(int array[N]);
    float mediaPari(int array[N]);
    
    int main() {
      int arr[N];
    
      for (int i = 0; i < N; i++) {
       cout << "Inserisci il valore dell'elemento in posizione " << i << ": ";
       cin >> arr[i];
      }
      for (int i = 0; i < N; i++) {
        cout << "Elemento in posizione " << i << ": " << arr[i] << endl;
      }
      
      cout << "Media dispari " << mediaDispari(arr) << endl;
      cout << "Media pari " << mediaPari(arr) << endl;  
      
      return 0;
    }
    
    float mediaDispari(int array[N]){
        int i;
        float somma = 0;
        for (i  = 0; i < N; i += 2){
            somma += array[i];
        }
        return somma / (i/2);
    }
    
    float mediaPari(int array[N]){
        int i;
        float somma=0;
        for (i = 1; i < N; i += 2){
            somma += array[i];
        }
        return somma / (i/2);
    }
    
    Scusi boss io faccio il terzo anno di informatica ho appena iniziato queste cose non so tanto bravo ma ci provo comunque a farli sti esercizi
  • Re: Esercizio array c++ aiuto

    Al terzo anno si dovrebbe sapere come scrivere un main o una funzione. Basta studiarli.

    Non cercare soluzioni pronte sui vari forum, proponi qualcosa ragionando di più.

    A prescindere dal linguaggio C sembra che tu non sappia cosa sia una media ....
  • Re: Esercizio array c++ aiuto

    oregon ha scritto:


    Al terzo anno si dovrebbe sapere come scrivere un main o una funzione. Basta studiarli.

    Non cercare soluzioni pronte sui vari forum, proponi qualcosa ragionando di più.

    A prescindere dal linguaggio C sembra che tu non sappia cosa sia una media ....
    Aimè quest'anno ció dei professori scandalosi, facendo l'itis l'istruzione come posso dire è scandalosa, l'unica mia salvezza sono i forum come questi
Devi accedere o registrarti per scrivere nel forum
18 risposte