I need to ask user's input until choice will be equal to 'a' OR 'd'
This condition can be written like
choice == 'a' || choice == 'd'
So if you want that the loop would iterate until this condition is true you should write
do
{
//...
} while ( !( choice == 'a' || choice == 'd' ) );
Or if to include header
#include <iso646.h>
then you can write
do
{
//...
} while ( not ( choice == 'a' || choice == 'd' ) );
or even like
do
{
//...
} while ( not ( choice == 'a' or choice == 'd' ) );
The condition
!( choice == 'a' || choice == 'd' )
or
not ( choice == 'a' or choice == 'd' )
is equivalent to
!( choice == 'a' ) && !( choice == 'd' )
or
not ( choice == 'a' ) and not ( choice == 'd' )
that in turn is equivalent to
( choice != 'a' ) && ( choice != 'd' )
The parentheses can be omitted Thus you will have
do
{
//...
} while ( choice != 'a' && choice != 'd' );