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]);