■if文を使って見つける
#include <stdio.h>
#include <limits.h>
int ary[] = {
3,
-14,
159,
-2653, //最少
58979, //最大
-3,
23,
-846,
2643,
};
int main(void){
int max = INT_MIN ;
int min = INT_MAX ;
const size_t num = sizeof(ary)/sizeof(ary[0]);
for(size_t i = 0 ; i < num ; i++){
if( max < ary[i]) {
max = ary[i];
}
if( min > ary[i]){
min = ary[i];
}
}
printf("配列内の最大値 = %d\n",max);
printf("配列内の最小値 = %d\n",min);
}
■三項演算子を使って見つける
//3項演算子版
#include <stdio.h>
#include <limits.h>
int ary[] = {
3,
-14,
159,
-2653, //最少
58979, //最大
-3,
23,
-846,
2643,
};
int main(void){
int max = INT_MIN ;
int min = INT_MAX ;
const size_t num = sizeof(ary)/sizeof(ary[0]);
for(size_t i = 0 ; i < num ; i++){
max = (ary[i] > max) ? ary[i] : max ;
min = (ary[i] < min) ? ary[i] : min ;
}
printf("配列内の最大値 = %d\n",max);
printf("配列内の最小値 = %d\n",min);
}
■マクロを使って見つける
//マクロ版
#include <stdio.h>
#include <limits.h>
int ary[] = {
3,
-14,
159,
-2653, //最少
58979, //最大
-3,
23,
-846,
2643,
};
#define MAX(a,b) (((a)>(b))?(a):(b))
#define MIN(a,b) (((a)<(b))?(a):(b))
int main(void){
int max = INT_MIN ;
int min = INT_MAX ;
const size_t num = sizeof(ary)/sizeof(ary[0]);
for(size_t i = 0 ; i < num ; i++){
max = MAX(ary[i],max);
min = MIN(ary[i],min);
}
printf("配列内の最大値 = %d\n",max);
printf("配列内の最小値 = %d\n",min);
}