[C] 그럼 알고싶은 걸 '출력' 해줄게.

장세민·2022년 6월 27일
0

📝 TIL

목록 보기
4/40

출력의 필요성

printf( );
()괄호 안에는 함수의 첫 인수로 ""안에 출력할 내용을 명시해야함.

인수
함수가 일하는 데 필요한 정보를 제공하는 데 사용
ex)
"무엇"을 출력해줘! 에서 "무엇"에 해당

printf("Example");
printf("!\n"); \n 탈출 문자, 줄바꿈 문자

printf("HELLO"\n");
printf("\n\n");
printf("안녕..\n안녕!\n");

printf의 변환 명세

식(변수)결과 값의 출력
변환 명세(%d)를 사용

ex)
printf("%d\n",age);
%d
이 자리에는 ""뒤의 변수 값이 표시됨
값을 출력할 변수명
age // 값을 출력할 변수명
정수 값을 출력하라는 변환 명세

printf("%lf\n", average)
%lf // 실수를 출력하라는 변환 명세
기본적으로 무조건 소수점 아래로 여섯자리를 출력해줌.

변환 명세

%d: 정수
%f: float 형 실수 %lf: double 형 실수
%c: 문자 한 개 %s: 문자열
%-d: 왼쪽 맞춤

printf 변환 명세 연습

printf("%d\n", 10+20);

printf("%d, %lf\n", 10+20, 1.5*3);

age=15
printf("나이:%d살\n", age);

printf의 변환 명세의 주의점
: 출력값과 변환 명세가 틀리면?

printf("%lf살\n", age);

에러는 발생하지 않으면서 이상한 값이 출력

printf의 변환명세와 필드 폭

세로로 여러 값이 오른쪽 맞춤 또는 왼쪽 맞춤으로 보기 좋게 하기 위해 사용

%d -> 꼭 필요한 만큼만 칸을 차지
%nd -> n칸을 차지하여 출력하되, 칸의 끝과 출력값의 오른쪽 끝을 맞춤. = 왼쪽에 남는 빈칸 생길 수 있음.

printf의 변환명세와 필드폭 연습

prntf("나이:%3d\n", age);
printf("학년:%3d\n", grade);
printf("음악%3d\n", music);
printf("미술:3d\n", art);

실수 변환 명세와 필드폭

92.5 출력 -> %5.1lf // 5는 전체 차지 칸, 소수점도 한 칸 차지, .1은 소수 차지 칸

실수 변환 명세와 필드폭 연습

printf("%5.1lf점\n", 9.7);
printf("%5.1lf점\n", 92.77); //소수 자리가 부족하면 반올림을 한다.
printf(%5.1lf점\n", 100.0);

변환 명세에서 필드 폭을 사용함으로서 숫자 크기를 쉽게 구분할 수 있다.

%.2lf //.위는 꼭 필요한 만큼만 자리를 차지, 소수 자리 칸만 강제로 지정

사용 예

printf("%.1lf점\n", 9.7);
printf("%.1lf점\n", 92.77);
printf("%.1lf점", 100.0);

putchar 함수

문자 1개를 모니터로 출력, 변환 명세가 필요 없다.

putchar('문자1개');
putchar(변수명);

예시)
char grade = 'A';

putchar(grade);
putchar('+');
putchar('\n');

ex) 표준체중과 표준체중과의 차이 구하기

  • %+.1lf 에서 +의 역할

1. 순서도 작성

2. 소스코드로 표현

#include <stdio.h>
 
int main()
{
    int height;
    double weight, s_weight, gap;
 
    height = 143;
    weight = 40;
 
    s_weight = (height - 100) * 0.9;
 
    gap = weight - s_weight;
 
    printf("키: %d\n", height);
    printf("체중: %.1lf\n\n", weight);
    printf("표준체중 %.1lf과의 차이과의 차이  %+.1lfkg \n",
    s_weight, gap);
 
    return 0;
 
}
profile
분석하는 남자 💻

0개의 댓글