How to find the second highest digit in int number with C

1 Answer

0 votes
#include <stdio.h>
   
int getTheSecondHighesDigit(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", getTheSecondHighesDigit(n));
       
    n = 76594;
    printf("%d\n", getTheSecondHighesDigit(n));
       
    n = 86429;
    printf("%d\n", getTheSecondHighesDigit(n));
	
	n = 96500;
    printf("%d\n", getTheSecondHighesDigit(n));
     
    n = 111;
    printf("%d\n", getTheSecondHighesDigit(n));
       
    return 0;
}
    
    
    
/*
run:
    
2
7
8
6
1
    
*/

 



answered May 30, 2020 by avibootz
edited May 30, 2020 by avibootz

Related questions

1 answer 147 views
1 answer 166 views
1 answer 147 views
1 answer 170 views
3 answers 270 views
1 answer 153 views
...