Visualizzazione dei risultati da 1 a 4 su 4

Discussione: programma con vettori

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2015
    Messaggi
    15

    programma con vettori

    ciao a tutti
    ho fatto il seguente programma ma mi da un errore, ho notato che se elimino l'ultima parte del sottoprogramma filtra invece compila. gli errori sono i seguenti:

    In function `void filtra(int*, int, float, int*, int&, int*, int&)':
    64: error: a function-definition is not allowed here before '{' token
    64: error: expected `,' or `;' before '{' token



    Codice PHP:
    dato un vettorecalcolare la media su tutti gli elementi ed infine stampare gli elementi che occupano la posizione pari e quelli 
    che occupano la posizione dispari minori della media
    */


    #include <iostream>
    #include <stdlib.h>
    using namespace std;
    #define dim 100
    void leggi(int [],int&);
    void esegui_media(int [],int ,float&);
    void filtra(int [],int,float,int [],int&,int [],int &);
    void stampa(int [],int ,float,int [],int,int [],int);






    int main (){
        
    int v[dim],r,v1[dim],r1,v2[dim],r2;
        
    float media;
        
    leggi(v,r);
        
    esegui_media(v,r,media);
        
    filtra(v,r,media,v1,r1,v2,r2);
        
    stampa(v,r,media,v1,r1,v2,r2);
        
        
        
    system("PAUSE");
        
        return 
    0;
    }




    void leggi(int v[],int &r){
         
    cout<<"INSERIRE IL RIEMPIMENTO R="cin>>r;
         
    cout<<"INSERIRE GLI ELEMENTI DEL VETTORE"<<endl;
         for(
    int i=0;i<r;i++){
                 
    cout<<"ELEMENTO V["<<i<<"]="cin>>v[i];
                 }
         
         
         }
    void esegui_media(int v[],int r,float &media){
         
    int somma=0;
         for(
    int i=0;i<r;i++){
                 
    somma=somma +v[i];
                 }
         
    mediafloat (somma/float (r/1));
         
         }
    void filtra(int v[],int rfloat media,int v1[],int &r1,int v2[],int &r2){
         
    int j=0;
         for(
    int i=0;i<r;i++){
                 if(
    i%2==&& v[i]<media){
                           
    v1[j]=v[i];
                           
    j++;}            
                 }
         
    r1=j;
         
         
    int l=0;
         for(
    int i=0;i<r;i++){
                 if(
    i%2!=&& v[i]<media){
                           
    v2[l]=v[i];
                           
    l++;}    
         
         
    r2=l;
         }
    void stampa(int v[],int rfloat media,int v1[],int r1,int v2[],int r2 ) {
         
    cout<<"LA MEDIA E' = "<<media<<endl;
         
    cout<<"IL VETTORE V =";
         for(
    int j=0;j<r;j++){
                 
    cout<<v[j];
         }
         
    cout<<endl;
         
    cout<<"GLI ELEMENTI DI POSIZIONE PARI E MINORI DELLA MEDIA SONO =";
         if(
    r1!=0){
                   for(
    int j=0;j<r1;j++){
                           
    cout<<v1[j];}}
                           else{
    cout<<"NON CI SONO ELEMENTI DI POSIZIONE PARI E MINORI DELLA MEDIA ";}
         
    cout<<endl;
         
         
    cout<<"GLI ELEMENTI DI POSIZIONE DISPARI E MINORI DELLA MEDIA SONO =";
         if(
    r1!=0){
                   for(
    int j=0;j<r2;j++){
                           
    cout<<v2[j];}}
                           else{
    cout<<"NON CI SONO ELEMENTI DI POSIZIONE DISPARI E MINORI DELLA MEDIA ";}
         
    cout<<endl;
         }
         } 

    grazie a tutti.

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2015
    Messaggi
    15
    ho risolto sostituendolo nello stesso ciclo for però vorrei capire il qual'era l'errore che commettevo.


    codice:
    void filtra(int v[],int r, float media,int v1[],int &r1,int v2[],int &r2){
         int j=0,l=0;
         for(int i=0;i<r;i++){
                 if(i%2==0 && v[i]<media){
                           v1[j]=v[i];
                           j++;}
                 if(i%2!=0 && v[i]<media){
                           v2[l]=v[i];
                           l++;}              
                 }
         r1=j;
         
              
         r2=l;
         }

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Devi controllare il numero di parentesi { e } nella funzione indicata nell'errore. Mi sa che ne manca una.

    Nel codice che hai corretto non ha senso eseguire due volte la stessa if.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2015
    Messaggi
    15
    grazie mille, scusa me non me ne ero accorto.

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.