Answer:
Here is the C++ program:
#include <iostream> // to use input output functions
using namespace std; // to identify objects like cin cout
int main() { //start of main function
int number; //an integer value
cout<<"Enter an integer: "; //prompts user to enter a number
cin >> number; // reads integer value from user
if (number > 98 || number < 20) { //if number is not between 20 and 98
cout<<"Input must be 20-98"; } //display this message if number is not between 20 and 98
else { // if number is in range 20-98
while(number%11){ // loop keeps taking mod of input number with 11 until matching digits found
cout<<number<<" "; //displays the numbers
number--; } // decrements the value of number by 1
cout<<number<<" "; } } // displays the matching digits
Step-by-step explanation:
I will explain the program with an example:
Let suppose the number = 90
The if condition evaluate to false because 90 is in the range of 20-98 so the else part executes which has a while loop that works as following:
while(number % 11)
At first iteration:
This while(number % 11) is basically equivalent to :
while(number % 11 != 0)
while(90 % 11)
The % operator is the modulo operator which returns the remainder of the division. So when 90 is divided by 11 the remainder is 2. This is not equal to 0. So the statement under while condition executes:
cout<<number<<" "; This statement displays the number on output screen. Since number = 90 so 90 is printed. " " adds a space with the number
90
Next the value of number is decremented to 1 so number = 89
At second iteration:
while(number % 11) becomes:
while(89 % 11)
When 89 is divided by 11 the remainder is 1. This is not equal to 0. So the statement under while condition executes:
cout<<number<<" "; This statement displays the number on output screen. Since number = 89 so 89 is printed. " " adds a space with the number
90 89
Next the value of number is decremented to 1 so number = 88
At third iteration:
while(number % 11) becomes:
while(88 % 11)
When 89 is divided by 11 the remainder is 0. So the while loop breaks because the condition while(number % 11 != 0) evaluates to false. So the statement in while loop does not execute and program control moves to the following statement:
cout<<number<<" "; This statement displays that number whose digits match on the output screen with a space. So the output of the entire program is:
90 89 88
The program along with the output using example given in the question i.e. input is 93 is attached in a screenshot.