반응형

 

질문자 : tim****

요구사항

제가 생각해서 만든 문제인데요


"세가지 수를 입력해서 최댓값과 최솟값의 곱을 구해서 9초과면 승리, 9이면 무승부, 9미만이면 패배"라고 뜨는 프로그램을 만드려고하는데
최댓값만 있으면 되는데 최솟값까지 하려니 힘드내요

소스하고 주석좀 달아주세요

if문 이용하는 거에요

 

결과.

 

내용을 입력하세요

 

 

 

 

내용을 입력하세요



//소스

#include <stdio.h>
main(){
 int num1, num2, num3, temp,temp1, max, min, result;
 printf("세 수를 입력해주세요 : ");
 scanf("%d %d %d", &num1, &num2, &num3);

 //최대값 구하기
 temp=num1;
 if(temp < num2) temp = num2;  //temp의 값과 num2의 값을 비교 해서 num2가 더크면 temp에 num2의 값을 담는다.
 if(temp < num3) temp = num3; //temp의 값과 num3의 값을 비교 해서 num3가 더크면 temp에 num3의 값을 담는다.
 max = temp;

 //최소값 구하기
 temp1=num1;
 if(temp1 > num2) temp1 = num2; //temp1과 num2를 비교해서 더 작은 값을 temp1에 담는다.
 if(temp1 > num3) temp1 = num3; //temp1과 num3를 비교해서 더 작은 값을 temp1에 담는다.
 min = temp1;

 printf("최대 값 = %d",max);
 printf(" 최소 값 = %d\n",min);

 result=min * max;

 if(result > 9) printf("승리\n");      //최소, 최대값의 곱이 9 초과 일때
 if(result == 9) printf("무승부\n");   // 9일 때
 if(result < 9) printf("패배\n");      //9미만 일때

}

 

 

 

 //설명

/*

세 수에서 최대값과 구하는 알고리즘

temp=num1;
if(temp < num2) temp = num2;

if(temp < num3) temp = num3;

 

이게 어떤 원리인가 하면..

세 수중 한가지 수를 먼저 임시저장할 temp에 담고

두 번째 수를 temp의 값과 비교하여 큰 수를 temp에 담습니다.

그러면 현재 두 가지 수중 큰수가 temp에 들어가 있는 것이고

다시 temp와 마지막 세 번째 수를 비교하여 큰수를 temp에 담습니다.

두 수중 큰수가 담긴 temp와 세 번째 숫자를 비교해서 큰수를 temp에 담았으니 가장 큰 수가 temp에 담기게 되죠

 

숫자를 대입시켜서 보겠습니다.

입력 받은 수 : 7 2 9

temp = 7; 7을 일단 담구요

temp의 값과 두 번째 수인 2를 비교 합니다.

7이 더크니깐 temp 값의 변화가 없겠지요..

temp의 값과 세 번째 수인 9를 비교합니다.

9가 더크네요. temp에 9를 넣어줍니다.

이제 가장 큰수는 9가 되었습니다.

 

최소값은 temp에 계속 작은 값을 담아 가면 되는 것입니다..

 

궁금한점은 댓글에!!

*/

 

 

 

반응형

+ Recent posts