오늘은 무작위 숫자 N개를 입력 받고 그 숫자 중 최소값과 최대값을 구하는 실습을 하도록 하겠습니다.
무작위 숫자 N개를 입력 받기 위해서는 루프문이 필요합니다. 정해진 숫자 만큼 값을 읽어 오기 위해서는 scanf문이 필요하겠죠.
for(i=0;i<N;i++){
scanf("%d",&inputVal[i]);
}
For문을 쓰든 While문이든 루프문을 이용하면 됩니다. 그리고 루프의 순차번호 순으로 배열 변수에 순차적으로 저장하면 됩니다.
이제 데이터를 무자귀 숫자만큼 읽어 올 수 있게 되었습니다.
최소값은 읽어 온 데이터가 저장된 inputVal[5] 배열 변수에 저장되어 있는데 이 데이터 안에 최소값을 찾기 위해서 For문을 이용했습니다.
minVal=inputVal[0];
for(i=1;i<5;i++){
if(minVal>inputVal[i]) minVal=inputVal[i];
}
위 코딩철머 첫값은 임시저장변수로 minVal 변수에 저장 하였습니다. minVal 변수에 저장된 값보다 더 작은 값이 inputVal[i] 배열 변수으로 체크하면서 작은 값이 나오면 if문을 통해 체크하게 됩니다. 여기서 반대로 하면 최대값이 되겠죠.
For문을 이용하여 최소 값을 구했으니깐 While문을 통해 For문과 유사한 코딩을 표현 할 수 있습니다.
maxVal=inputVal[0];
i=1;
while(i<5){
if(minVal<inputVal[i]) maxVal=inputVal[i];
i++;
}
이렇게 입력 된 배열 변수에 값을 루프문을 통해 최소/최대값을 구할 수 있습니다.
[전체소스]
#include
#include
int main(int argc, char *argv[]) {
int inputVal[5];
int minVal=0;
int maxVal=0;
int i;
printf("무작위 정수 5개를 입력하시오? ");
for(i=0;i<5;i++){
scanf("%d",&inputVal[i]);
}
minVal=inputVal[0];
for(i=1;i<5;i++){
if(minVal>inputVal[i]) minVal=inputVal[i];
}
maxVal=inputVal[0];
i=1;
while(i<5){
if(minVal<inputVal[i]) maxVal=inputVal[i];
i++;
}
//출력
for(i=0;i<5;i++){
printf("%d ",inputVal[i]);
}
printf("\n");
printf("min : %d \n",minVal);
printf("max : %d \n",maxVal);
system("pause");
return 0;
}
[결과]
최소/최대값을 구하는 코딩을 해 봤네요. 추가로 중간값을 구하는 방법을 직접 해보세요.