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ăspunsuri la întrebare
Răspuns de
0
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;
}
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;
}
Alte întrebări interesante
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
#include <iostream>
using namespace std;
int main()
{
int a,b,maxx,d;
cin>>a>>b;
if(b<a) maxx=b;
else maxx=a;
d=1;
while(d<maxx/2);
{
if(a%d==0 && b%d==0) cout<<d;
}
d=d+1;
return 0;
}