Salut!
Am facut programul:
#include <iostream.h>
int main()
{int a,b,r;
cout<<"a=";
cin>>a;
cout<<"b=";
cin>>b;
if(a>b)
{r=a;
a=b;
b=r;}
while(a!=0)
{r=a%b;
a=b;
b=r;}
cout<<a;}
Imediat dupa ce introduc valorile (a;b) programul se intrerupe. Ma puteti ajuta va rog frumos?
Mesajul ce apare imediat dupa intrerupere spune " daca esti in mijlocul a ceva, informatiile cu care lucrezi au fost pierdute".
Multumesc!
Salut. Banuiesc ca esti clasa a noua si asa ceva va invata la informatica. Ai idee ce limbaj "va spune" ca va invata? Pentru ca nu prea e C++, desi ei spun ca e C++...V-a invatat si de do .. while "statement"? (Vezi aici la the do while loop:
http://cplusplus.com/doc/tutorial/control/)
Ceea ce iti trebuie tie este algoritmul lui Euclid, si iata o varianta corecta a lui (in C - inlocuiesti tu scanf - citirea, cu cin si afisarea - printf - cu cout, am incredere ca esti destept, la fel directivele de preprocesare #include - cu ce iti trebuie):
#include<stdio.h>
#include<conio.h> /* foloseste asta daca esti in DEV sau Borland si vrei sa vezi rezultatul cum trebuie, vei avea nevoie de functia getch(); */
int main()
{
int a,b,r;
scanf("%d%d", &a, &b);
do { r=a%b;
a=b;
b=r; } while(r!=0);
printf("%d \n", a);
getch(); /* prototipul functiei getch(); se afla in conio.h */
return 0;
}
Sau mai exista algoritmul prin scaderi repetate, pe care ti l-a prezentat Qunatum mai sus.
Tu ai folosit algoritmul lui Euclid si problema ta era ca trebuia sa initializezi pe r cu o valoare (tu doar faci o interschimbare pe acolo, care e complet inutila si aiurea, mai exact liniile de cod citate mai jos) pentru ca sa iti intre in bucla while. Eu am folosit do while pentru a
nu fi nevoie sa il initializez pe r, tocmai pentru ca am nevoie sa il calculez inainte de a intra cumva in bucla:
if(a>b)
{r=a;
a=b;
b=r;}
Sper ca au fost clare explicatiile, desi s-ar putea sa fi fost un pic prea "stiintific" pentru clasa a noua.
Ca si compilator, folosesti cumva DEV CPP? E foarte bun pentru lucrul sub Windows, dupa parerea mea. Evita Borland sau TurboC/TurboC++ ...