Почему не работает программа? после выполнения операции "do...while" программа прекращает свою работу..
#include <cmath>
#include <stdio.h>
#include <iostream>
using namespace std;
int main () {
int a, b, gcd;
do {
cout<<"enter number a and b (so that a anb b is not 0):"<<endl;
cin>>a>>b;
} while (a == 0 && b == 0);
do {
if (a > b) {
a = a % b;
} else if (b > a) {
b = b % a;
}
} while (a != 0 || b != 0);
cout<<"greatest common divisor of the given numbers = "<<a+b<<endl;
}
Представим, что после очередной итерации a
таки 0, а b
ну, скажем, 10.
a != 0 || b != 0
совершенно истинно - b
не равно 0, так что выходим на следующую итерацию и начинаем делить на 0...
Тут вам нужно
a != 0 && b != 0
А вот в первом цикле как раз нужно
a == 0 || b == 0
чтобы не принимало даже одного нуля, а не оба :)
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Данный код считает максимальную компоненту связностиКак найти их количество? Например,
Почему лучше вызывать константный operator[] из не константного operator[] а не наоборотЯ не вижу разницы между этими двумя способами