Najbardziej intuicyjnym sposobem jak dla mnie jest sprawdzenie każdej liczby kiedy pierwsza pętla się zakończy czyli przynajmniej jedna z liczb będzie dodatnia. Jako że liczb ma być 3 to ja sprawdziłbym każdą a potem zastosował identyczne podejście co na początku, czyli prosił o wprowadzenie liczby tak długo aż będzie ona dodatnia.
int a, b, c;
int N = 10;
do
{
cout<< "Podaj liczby a b c: ";
cin >> a >> b >> c;
} while (a <= 0 && b <= 0 && c <= 0);
if (a <= 0)
{
do
{
cout<< "Podaj ponownie liczbe a: ";
cin >> a;
} while ( a <= 0);
}
if (b <= 0)
{
do
{
cout<< "Podaj ponownie liczbe b: ";
cin >> b;
} while ( b <= 0);
}
if (c <= 0)
{
do
{
cout<< "Podaj ponownie liczbe c: ";
cin >> c;
} while ( c <= 0);
}