Salve a tutti. Sono nuova in questo forum.
Vorrei un aiuto, se possibile, su un programmino C++.
Ecco la traccia:
"Scrivere un programma C++ che, letti da input nell’ordine un unsigned dimA, un array A di dimA interi, unaltro unsigned dimB e un array B di dimB interi stampi la stringa SI se gli elementi di B sono tutti contenuti
in A nello stesso ordine in cui appaiono in B, e la stringa NO altrimenti. Si noti che, se in B sono presenti più
occorrenze dello stesso valore, allora devono essercene almeno altrettante in A."
E anche il codice che ho creato:
"int main()
{
unsigned dimA;
cout<<"inserisci la dim di A"<<endl;
cin>>dimA;
int A[dimA];
for(unsigned i=0;i<dimA;i++)
{
cin>>A[i];
}
unsigned dimB;
cout<<"inserisci la dim di B"<<endl;
cin>>dimB;
int B[dimB];
for(unsigned j=0;j<dimB;j++)
{
cin>>B[j];
}
if(controllo(A,B,dimA,dimB))
cout<<"SI";
else
cout<<"NO";
return 0;
}
bool controllo(int A[],int B[],unsigned dimA,unsigned dimB)
{
bool ok=true;
unsigned i,j;
if(dimA==dimB || dimA!=dimB)
{
for(i=0;i<dimA;i++)
{
ok=false;
for(j=0;j<dimB;j++)
{
if(A[i]==B[j])
{
ok=true;
}
}
if(!ok)
return false;
}
}
return ok;
}
void ordine(int A[],int B[],unsigned dimA,unsigned dimB)
{
int tmp;
for(unsigned i=0;i<dimA;i++)
{
for(unsigned j=0;j<dimB;j++)
{
if(A[i]<B[j])
{
tmp=A[i];
A[i]=B[j];
B[j]=tmp;
}
}
}
}"
Problema:anche se le dimensioni dei due array sono diverse, deve restituire la stringa SI; anche se tutti gli elementi sono gli stessi, devono anche essere in ordine in base all'array B.
Grazie in anticipo!