C言語実装配列における最大値、最小値、第2の大きな値の検索


/*
 *    :       .c
 *     :         ,   ,    
 *    :   
 *     :2017-12-12
*/
#include 

#define    NR    10 //       

/*      */
int main(int argc, char **argv)
{
    int ar[NR];
    int i;

    fprintf(stdout, "   %d   :
"
, NR); /* */ while (1) { /* NR */ for (i = 0; i < NR; i++) { if (fscanf(stdin, "%d", &ar[i]) != 1) { fprintf(stdout, " ! :
"
); while (getchar() != '
'
); // break; // for } } /* NR */ if (i != NR) { continue; } else { break; } } /* */ int max, min; max = ar[0]; // min = ar[0]; // /* */ for (i = 1; i < NR; i++) { if (ar[i] > max) // { max = ar[i]; } if (ar[i] < min) // , else if, { min = ar[i]; } } fprintf(stdout, " :%d :%d
"
, max, min); /* : */ int second; /* */ ar[0] > ar[1] ? (max = ar[0], second = ar[1]): \ (max = ar[1], second = ar[0]); /* 2 */ for (i = 2; i < NR; i++) { if (ar[i] > max) // : { second = max; // max = ar[i]; } else if (second < ar[i]) // { second = ar[i]; } } fprintf(stdout, " :%d
"
, second); return 0; }