Answer:
#include <iostream>
using namespace std;
class Digits
{
 public:
 int num;
 int read() //method to read num from user
 {
 cout<<"Enter number(>0)\\";
 cin>>num;
 return num;
 }
 int digit_count(int num) //method to count number of digits of num
 {
 int count=0;
 while(num>0) //loop till num>0
 {
 num/=10;
 count++; //counter which counts number of digits
 }
 return count;
 }
 int countDigits(int num) //method to return remainder
 {
 int c=digit_count(num); //calls method inside method
 return num%c; 
 }
};
int main()
{
 Digits d; //object of class Digits is created
 int number=d.read(); //num is read from user
 cout<<"\\Remainder is : "<<d.countDigits(number); //used to find remainder
 return 0;
}
Output :
Enter number(>0)
343
Remainder is : 1
Step-by-step explanation:
As program is missing to find errors , a logically write program is written to find the remainder when a number is divided by its number of digits. A class Digits is constructed which has public variable num and methods read(), digit_count(), countDigits().
- read() - This method reads value of num from the user and return num.
 - digit_count() - This method takes a integer as parameter and counts the number of digits of a number passed as argument. while loop is used to increement the counter until num<0. This returns the value of count.
 - countDigits() - This method takes a integer as a parameter and returns remainder when the argument is divided by number of digits of argument. Number of digits is calculated by using method digit_count().
 
At last in main method , object of Digits class is created and its methods are used to find the output.