How to find the second highest digit in integer without using array in C#

1 Answer

0 votes
#include <stdio.h>
    
int getTheSecondHighestDigit(int n) {
    int max = 1, befor_max = max;
    while(n) {
        int x = n % 10;
        if (x > max) {
            befor_max = max;
            max = x;
        } else if (x > befor_max && x != max) {
            befor_max = x;  
        }
        n /= 10;
    }
    return befor_max;
}
     
int main(void) {
    int n = 213;
    printf("%d\n", getTheSecondHighestDigit(n));
        
    n = 76594;
    printf("%d\n", getTheSecondHighestDigit(n));
        
    n = 86429;
    printf("%d\n", getTheSecondHighestDigit(n));
     
    n = 96500;
    printf("%d\n", getTheSecondHighestDigit(n));
      
    n = 111;
    printf("%d\n", getTheSecondHighestDigit(n));
        
    return 0;
}
     
     
     
/*
run:
     
2
7
8
6
1
     
*/

 



answered May 30, 2020 by avibootz

Related questions

1 answer 135 views
1 answer 168 views
1 answer 140 views
1 answer 154 views
1 answer 130 views
1 answer 149 views
1 answer 103 views
...