질문자 : tim****
요구사항
제가 생각해서 만든 문제인데요
결과.
|
|
|
내용을 입력하세요 | |||
|
|
|
|
|
내용을 입력하세요 |
//소스
#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에 계속 작은 값을 담아 가면 되는 것입니다..
궁금한점은 댓글에!!
*/
'지식in > c언어 관련' 카테고리의 다른 글
c언어 적정온도 (0) | 2013.10.13 |
---|---|
구조체를 사용 학번, 이름, 학점 입력 받고 출력 하기. (0) | 2013.10.12 |
c언어 문자열을 입력받아 대문자와 소문자로 출력하기 (0) | 2013.10.09 |