I'm a newbie here and I just started college. We are learning C++ and I find it a little bit difficult, because of the way the teachers explain. Yesterday we did a task that says to create a program, which finds greatest common divisor of 2 numbers. So, the teacher started writing the code, but the explanation wasn't enough for me and I really need some help right now. (I putted comments on the things I don't understand.) Here is the code:
#include <iostream>
#include <cmath>
using namespace std;
int main(){
    int a, b;
    cout << "a = ";
    cin >> a;
    cout << "b = ";
    cin >> b;
    cout << "GCD (" << a << ", " << b << ") is ";
    if (a != 0 && b != 0){
        size_t min = abs(a) < abs(b) ? abs(a) : abs(b); //What's that after (?)?
        size_t max = abs(a) > abs(b) ? abs(a) : abs(b);
        size_t diff = max - min; //What is that variable used for?
        while (diff > 0)
        {
            min = diff < min ? diff : min;
            max = diff > min ? diff : min;
            diff = max - min;
        }
        cout << min << endl;
    }
    else{
        if (a != 0 || b != 0)
            cout << (a>b ? a : b) << endl;
        else
            cout << "not possible!!!\n";
    }
    system("pause");
    return 0;
}
QUESTION: When should I put {} on if's, while's etc.?
 
     
     
     
     
     
    