반응형
멀티 프로그램 만들기(최댓값, 사이합, 수나열, 계산기)
입력형식 | 처리조건 |
== 멀티프로그램 == |
1. 최댓값은 세 개의 정수를 입력받아 가장 큰 수를 출력한다. |
#include<stdio.h>
int main(){
int num1, num2, num3, tmp = 0; // tmp는 임시변수이다.
char op;
int menu = 0; // 사용자가 선택한 메뉴값을 저장하는 변수이다.
while(1){
printf("\n== 멀티프로그램 ==\n");
printf("1. 최댓값\n");
printf("2. 사이합\n");
printf("3. 수나열\n");
printf("4. 계산기\n");
printf("5. 종 료\n");
printf("=================\n");
printf("선택 : ");
scanf("%d", &menu);
if(menu == 1){ // 최댓값
printf("첫 번째 수 : ");
scanf("%d", &num1);
printf("두 번째 수 : ");
scanf("%d", &num2);
printf("세 번째 수 : ");
scanf("%d", &num3);
tmp = 0;
if(num2 > num1 && num2 > num3){
tmp = num1;
num1 = num2;
num2 = tmp;
}
else if(num3 > num1 && num3 > num2){
tmp = num1;
num1 = num3;
num3 = tmp;
}
printf("최댓값 : %d\n", num1);
}
else if(menu == 2){ // 사이합
printf("2개의 수 입력 [수1 수2] : ");
scanf("%d %d", &num1, &num2);
tmp = 0;
if(num2 > num1){ // num2가 큰 수이면,
for(int i = num1; i <= num2; i++) // num1부터 num2사이 값들의 합을 구한다.
tmp += i;
} else{
for(int i = num2; i <= num1; i++) // num1이 큰 수이면, num2부터 num1사이 값들의 합을 구한다.
tmp += i;
}
printf("사이합 : %d\n", tmp);
}
else if(menu == 3){ // 수나열
printf("숫자 3개 입력 [수1, 수2, 수3] : ");
scanf("%d, %d, %d", &num1, &num2, &num3); // ""안의 양식대로 입력된 변수의 값들이 구분된다.
tmp = 0;
if(num2 > num1 && num2 > num3){ // num2가 제일 큰 수이면,
tmp = num1; // num1에 num2값을, num2에 num1값을 저장한다.
num1 = num2;
num2 = tmp;
} else if(num3 > num1 && num3 > num2){ // num3이 제일 큰 수이면,
tmp = num1; // num1에 num3값을, num3에 num1값을 저장한다.
num1 = num3;
num3 = tmp;
}
if(num2 < num3){ // num2와 num3의 값을 비교하여 큰 수 를 num2에 저장한다.
tmp = num2;
num2 = num3;
num3 = tmp;
}
printf("%d >= %d >= %d\n", num1, num2, num3);
}
else if(menu == 4){ // 계산기
printf("첫 번째 수 : ");
scanf("%d", &num1);
getchar(); // '첫 번째 수' 입력 값이 num1에 저장된 후, 'Enter'는 getchar()에 저장된다.
do{
printf("연산자(+, -, *, /) : ");
scanf(" %c", &op); // '%c'앞에 'space'를 주면, 앞의 입력값을 입력하고 누른 'Enter'가 'space'에 먹히게 된다.
} while(op != '+' && op != '-' && op != '*' && op != '/');
// op의 값이 +, -, *, /, %가 아니면 do로 돌아가 다시 입력받는다.
do{
printf("두 번째 수 : ");
scanf("%d", &num2);
} while(op == '/' && num2 == 0);
// op가 '/'이고 num2값이 0이면 do로 돌아가 다시 입력받는다.
tmp = 0;
switch(op){
case '+': tmp = num1 + num2; break;
case '-': tmp = num1 - num2; break;
case '*': tmp = num1 * num2; break;
case '/': tmp = num1 / num2; break;
}
printf("%d %c %d = %d\n", num1, op, num2, tmp);
}
else if(menu == 5){ // 종료
printf("종료하겠습니다.\n");
return 0; // 프로그램을 종료한다.
}
else
printf("메뉴의 선택이 올바르지 않습니다.\n");
}
return 0;
}
반응형
'C' 카테고리의 다른 글
[C언어] 실습: 구구단 출력하기 (0) | 2021.01.26 |
---|---|
[C언어] 다중 for 문 (0) | 2021.01.20 |
[C언어] 실습: 국어, 영어, 수학 점수를 입력받은 후, 총점, 평균, 학점 구하기 - 2 (0) | 2021.01.18 |
[C언어] 실습: 하나의 정수를 입력받은 후, 1부터 입력받은 정수까지 1씩 증가해서 출력하기 (0) | 2021.01.17 |
[C언어] 실습: 계산기 만들기-두 개의 양의 정수와 하나의 연산자를 입력받아 계산하기 (switch~case) (0) | 2021.01.12 |