Salut, sunt clasa a 11-a si as vrea sa invat cum functioneaza divide et impera mai bine:
#include<iostream> // prodsul numerelor
using namespace std;
int n;
void(divizeaza(int s,int d,int &m)
{
cout<<"Acum sunt la divizeaza iar s="<<s<<" d="<<d<<" m="<<m<<"\n";
m=s+d/2;
cout<<m<<"="<<s<<"+<<d<<"\2"<<"\n";
}
void combina(int x,int y, int &z) // combina solutiile
{
cout<<"Acum sunt la combina iar x="<<x<<" y="<<y<<" z="<<z<<"\n";
z=x+y;
cout<<z<<"="<<x<<"+"<<y<<"\n";
}
void dei(int s, int d, int &z)
{
cout<<"Acum sunt la dei iar s="<<s<<" d="<<d<<" z="<<z<<"\n";
int m,x1,x2; // ce reprezinta m, x1, x2 si unde mai sunt folosite ?
cout<<"dei iar m="<<m<<" x1="<<x1<<" x2="<<x2<<"\n";
if(s==d)
{
cout<<"s==d adevarat"<<"\n";
z=s*(s+1);
cout<<"asa ca "<<z<<"="<<s"*"<<(s+1)<<;
}
else
{
cout<<"acum incepe sirul ala lung divizeaza, dei, dei, combina";
divizeaza (s,d,m);
dei (s,m,x1);
dei (m+1,d,x2);
combina (x1,x2,z);
}
int main()
{
int i,z;
cin>>n;
cout<<"acum incepe programul principal iar i="<<i<<" n="<<n<<" si z="<<z<<"\n";
if(i=1;i<=n;i++)
cin>>v;
dei(1,n,z);
cout<<"acum a iesit din subprograme"<<"\n";
cout<<z;
return 0;
}
Scopul algoritmului este sa inmulteasca toate numerele prin divide et impera dar nu l-am facut bine, imi da cu eroare, ma puteti ajuta ?
Spre exemplu o eroare imi spune ca "m" este declarat fara tip, nu inteleg la ce se refera ?
Problema este facuta in MinGW.