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;
}