728x90
7.11 최대, 최소, 평균 구하기 예제
- 입력받은 수들의 최댓값, 최솟값, 평균값을 구하는 프로그램
- 0 미만, 100 초과인 입력값들은 무시
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <float.h> // FLT_MAX 사용 위해 include
int main() {
float max = -FLT_MAX;
float min = FLT_MAX;
float sum = 0.0f;
float input;
int count = 0;
while (scanf("%f", &input) == 1) {
if (input > 100.0f || input < 0.0f)
continue;
max = (input > max) ? input : max;
min = (input < min) ? input : min;
sum += input;
count++;
}
if (count > 0)
printf("Max = %f, Min = %f, Average = %f", max, min, sum / count);
else
printf("No input\n");
return 0;
}
- 실수로 표현할 수 있는 가장 작은 값 (-FLT_MAX == 3.402823466e+38F)을 max에 넣어서 input의 첫 값은 무조건 max보다 큼
- min에는 실수로 표현할 수 있는 가장 큰 값을 넣음
Output :
(1 2 3 4 5 q 입력)
Max = 5.000000, Min = 1.000000, Average = 3.000000
7.12 다중 선택 switch와 break
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
char c;
while ((c = getchar()) != '.') {
printf("You love ");
switch (c) { // 괄호 안에는 정수형 변수만 가능
case 'a':
printf("apple");
break;
case 'b': // 위처럼 두가지 이상 조건 입력 가능
case 'B':
printf("baseball");
break;
case 'c':
printf("cake");
break;
default: // 위의 모든 case에 해당하지 않을 때
printf("nothing");
}
printf(".\n");
while (getchar() != '\n'); // 입력버퍼 역할, 줄바꿈이 나올때 까지 다른 문자들 무시
continue;
}
return 0;
}
Output :
(a 입력)
You love apple.
(b 입력)
You love baseball.
(B 입력)
You love baseball.
(c 입력)
You love cake.
(d 입력)
You love nothing.
7.13 goto를 피하는 방법
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int size, cost;
scanf("%d", &size);
if (size < 10)
goto a; // a 는 label, 해당 label이 있는 위치로 이동
goto b;
a:cost = 50 * size;
b:cost = 100 * size;
printf("Cost : %d", cost);
return 0;
}
Output :
(11 입력)
Cost : 1100
(4 입력)
Cost : 400
- goto문은 과거 BASIC과 같은 조건문과 반복문이 발달되지 않은 언어에서 사용
- BASIC (Beginner's All-purpose Symbolic Instruction Code) : '초심자용 다목적 기호명령부호'로 교육용으로 개발된 절차지향 언어
- 현재는 오류의 위험이 있고 코드의 가독성이 떨어지므로 되도록 사용하지 않음
https://www.inflearn.com/course/following-c/dashboard
'Study_C, C++ > 홍정모의 따라하며 배우는 C언어' 카테고리의 다른 글
[홍정모의 따라하며 배우는 C언어] 8.4 사용자 인터페이스는 친절하게 ~ 8.5 숫자와 문자를 섞어서 입력받기 (0) | 2022.03.03 |
---|---|
[홍정모의 따라하며 배우는 C언어] 8.1 입출력 버퍼 ~ 8.3 입출력 방향 재지정 (0) | 2022.02.08 |
[홍정모의 따라하며 배우는 C언어] 7.8 단어 세기 예제 ~ 7.10 루프 도우미 continue와 break (0) | 2022.01.28 |
[홍정모의 따라하며 배우는 C언어] 7.7 논리 연산자 Logical operators (0) | 2022.01.24 |
[홍정모의 따라하며 배우는 C언어] 7.5 else와 if 짝짓기 ~ 7.6 소수 판단 예제 (0) | 2021.12.31 |