👤
a fost răspuns

Ce nu este bine în program?

//divizorii comuni ai lui a și b
#include
using namespace std;
int main()
{
int a,b,maxx,d;
cin>>a>>b;
if(b else maxx=a;
d=1;
while(d {
if(a%d==0 && b%d==0) cout< }
d=d+1;
return 0;
}


Răspuns :

In primul rand, cand ai chestii de divizibilitate nu pui niciodata while.Pui for. De ce? For este o instructiune cu numar cunoscut de pasi, iar tu cunosti nr de pasi (de la 1 la a sau b )
Probabil ca nu merge pt ca nu iese niciodata din while.

In al doilea rand, cand declari o variabila in interiorul int main(), i se atribuie o valoare la intamplare. Ori tu nu vrei asta, ci vrei sa inceapa de la 0. Solutia: Intializeaza pe 0 sau declara-le global (in afara main)

Codul corect si testat:

#include <iostream>
using namespace std;
int main()
{
int a,b,i,d=0;
// citesti a si b
for(i=1;i<=a;i++)
-----if( a%i ==0 && b%i ==0 )
------------d++;
//afisezi d
return 0;
}