Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2016
    Messaggi
    38

    [C++] problema con le struct

    il quesito da risolvere � il seguente: siano dati in ingresso il riempimento e gli elementi di un vettore interi V. scrivere un programma che identifichi e memorizzi in un apposita struttura dati tutte le terne a,b,c di elementi di V che verificano la condizione seguente:a<b<c. si noti che le terne considerate debbono essere disgiunte. per ciascuna terna trovata si memorizzi la posizione del primo elemento e la somma degli elementi che la compongono. si provveda poi ad eliminare dal vettore V la terna avente somma max. stampare infine tutte le terne trovate.

    mi da il seguente errore: main.cpp: In function 'int main()':main.cpp:41:31: error: expected primary-expression before 'x'
    elimina_seq (v,r,sequenza x);

    e il programma � il seguente... come mai?

    codice:
    #include <cstdlib>
    #include <iostream>
    #include <stdio.h>
    #include "newfile.h"
    using namespace std;
    
    
    /*
     * 
     */
    int r;
    int v[nmax];
    int k[nmax];
    struct sequenza
    {
        int pos[3];
        int somma[3];
    }x[100];
    
    
    int main()
    {
        cout<<"inserisci il riempimento\n";
        do
            cin>>r;
        while (r>nmax);
            
        inserisci_vet(v,r); 
        stampa_vet(v,r);
        elimina_seq (v,r,sequenza x);
        cout<<"il vettore senza terna (con somma max) � il seguente:\n";
        stampa_vet(v,r);
        system ("pause");
        return 0;
    }
    codice:
    #include <cstdlib>#include <iostream>
    #include <stdio.h>
    #include "newfile.h"
    using namespace std;
    
    
    void inserisci_vet(int v[nmax],int r)
    {
        cout<<"inserisci gli elementi del vettore\n";
        for (int i=0;i<r;i++)
        {
            cout<<"v["<<i<<"]: ";
            cin>>v[i];
            cout<<endl;
        }     
    }
    
    
    void stampa_vet(int v[nmax],int r)
    {
        cout<<"il vettore inserito �:\n";
        for (int i=0;i<r;i++)
        {
            cout<<"v["<<i<<"]: ";
            cout<<v[i];
            cout<<endl;
        }     
    }
    
    
    struct sequenza
    {
        int pos[3];
        int somma[3];
    };
    
    
    struct sequenza x[100];
    
    
    void controllo(int v[nmax],int r,int k[nmax])
    {
        for (int i=0;i<r;i++)
        {
            if (v[i]<v[i+1] && v[i+1]<v[i+2])
            {            
                int somma =v[i]+v[i+1]+v[i+2]; 
                x[i].sequenza.pos=i;
                x[i].sequenza.somma=somma;
                for (int j=0;j<r;j++)
                {
                    k[j]=0;
                    v[i]=k[j+1];
                    v[i+1]=k[j+2];
                    v[i+2]=k[j+3];
                    k[j+4];
                    
                }
            }
        }
    }
    
    
    int somma_max(int v[nmax],int r,struct sequenza x[100])
    {
        int max=x[0].sequenza.somma;
        for (int i=0;i<r;i++)
        {
            if (x[i+1].sequenza.somma>x[i].sequenza.somma)
                max=x[i+1].sequenza.somma;         
        }
        
        return (max);  
    }
    
    
    void elimina_seq (int v[nmax],int r,struct sequenza x[100])
    {
        for (int i=0;i<r;i++)
        {
            if (x[i].sequenza.somma==somma_max(sequenza x[100]))
            {
                r-=3;
                for (int k=0;k<r-3;k++)
                {
                    int j=k+3;
                    v[i+k]=v[i+j];
                }
            }
                
        }
        
    }
    codice:
    #include <cstdlib>#include <iostream>
    #include <stdio.h>
    using namespace std;
    
    
    #define nmax 100
    
    
    void inserisci_vet(int v[nmax],int r);
    void stampa_vet(int v[nmax],int r);
    void controllo(int v[nmax],int r,int k[nmax]);
    int somma_max(struct sequenza x[100]);
    void elimina_seq (int v[nmax],int r,struct sequenza x[100]);

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Questa chiamata

    elimina_seq (v,r,sequenza x);

    ti sembra corretto?


    P.S. Non c'è nulla di urgente nei forum ... e non scriverlo nel titolo ...
    Ultima modifica di oregon; 17-07-2016 a 23:13
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    (rimosso)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2016
    Messaggi
    38
    scusa.. pian piano imparerò tutte le regole del forum... cmq come dovrei scriverlo? solamente x?

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quote Originariamente inviata da emix95 Visualizza il messaggio
    solamente x?
    Per le altre variabili passi anche il tipo?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.