5. printf()의 활용
궁금증 하나!
에서, 괄호 안의 %d는 그대로
나오지 않는 것일까?
프로그램에 미리 정의된 서식이기 때문이다!
printf(“%d - %d = %d n”, 100, 10, 90)
서식 예시 설명
%d 10, 100 정수
%f or %lf 0.5, 3.14 실수(소수점이 포함된 수)
%c ‘a’, ‘b’, ‘A’, ‘B’ 한 글자로 된 문자
%s “hello”, “안녕” 문자열
서식의 종류
6. printf()의 기본 활용
결과 확인해보기
#include <stdio.h>
int main()
{
printf(“%d n”, 100);
printf(“%f n”, 3.14);
printf(“%c n”, ‘a’);
printf(“%s n”, “hello”);
}
7. printf()의 기본 활용
값이 정상적으로 출력되는가?
#include <stdio.h>
int main()
{
printf(“%d n”, 0.5);
printf(“%f n”, 100);
printf(“%c n”, “hello”);
printf(“%s n”, ‘a’);
}
8. printf()의 활용
궁금증 둘!
에서, n이 의미하는 것은?
프로그램에 미리 정의된 서식으로, 줄 바꿈을 의미한다
printf(“%d - %d = %d n”, 100, 10, 90)
서식 설명
n 새로운 줄로 이동한다
t 다음 탭(tab)으로 이동한다
b 뒤로 한 칸 이동한다
r 줄의 맨 앞으로 이동한다
a beep 소리를 낸다
를 출력한다
’ ‘를 출력한다
” “를 출력한다
서식의 종류
9. printf()의 기본 활용
결과 확인해보기
#include <stdio.h>
int main()
{
printf(“n 줄바꾸기 n 한 번 더 n”);
printf(“t 탭 연습하기 n”);
printf(“글씨쓰기r덮어쓰기n”);
printf(“a beep 소리내기 n”);
printf(“ 쌍 슬래시 출력하기 n”);
printf(“안녕하세요 ”hello” n”);
}
11. 변수란?
프로그램이 실행되는 동안 데이터의 값을 저장해두는 박스
변수 각각은 다른 박스에 담는다.
int num;
char name;
num을 담는 박스 name을 담는 박스
12. 변수의 구성
int num;
변수의 자료형 변수의 이름
int num = 100;
변수 num을 담는 상자
100
변수 num을 담는 상자
?
13. 변수의 선언
변수 이름의 규칙
알파벳 대문자, 소문자, 밑줄(_), 숫자로 표현할 수 있음
명칭의 첫 글자는 반드시 대문자 또는 소문자 또는 밑줄이어야 함
알파벳 대문자와 소문자는 서로 다른 문자로 인식함
C언어의 문법을 위한 예약어는 변수명으로 사용할 수 없음
auto break case char const continue default do
double else enum extern float for goto if
int long register return short signed sizeof static
struct switch typedef union unsigned void volatile while
14. 변수의 선언
변수 별로 선언하기
int num;
int age;
char name;
float grade;
동일한 자료형끼리 묶어서 선언하기
int num, age;
char name;
float grade;
15. 변수 초기화하기
선언 후 초기화하기
int num;
int age;
num = 100;
age = 20;
선언과 동시에 초기화하기
int num = 100;
int age = 20;
int num = 100, age = 20;
16. 변수의 기본
결과 확인해보기
#include <stdio.h>
int main()
{
int num;
double pi;
num = 100;
pi = 3.14;
printf(“num is %d n”, num);
printf(“pi is %f n”, pi);
}
17. 변수의 기본
결과 확인해보기
#include <stdio.h>
int main()
{
int num;
double pi;
num = 3.14;
pi = 100;
printf(“num is %d n”, num);
printf(“pi is %f n”, pi);
}
18. 변수의 크기
변수에 따라 다른 크기의 박스가 할당됨
종류 서식 자료형 크기 값의 범위
작은 정수
%d
short 2바이트 -215 ~ 215 -1
부호 없는 작은 정수 unsigned short 2바이트 0 ~ 216 -1
정수 int 4바이트 -232 ~ 231 -1
부호 없는 정수 unsinged int 4바이트 0~ 232-1
큰 정수 long (int) 4바이트 -231 ~ 231 -1
부호 없는 큰 정수 unsinged long 4바이트 0 ~ 232 -1
실수 %f float 4바이트 약 -3.4x1038 ~ 3.4x1038
큰 실수 %lf double 8바이트 약 -1.79x10308 ~ 1.79x10308
문자 하나 %c char 1바이트 -27 ~ 27 -1
문자열 %s char* 4바이트
19. 변수의 크기
실제로 확인해보기
#include <stdio.h>
int main()
{
printf("%dbyte n", sizeof(int));
printf("%dbyte n", sizeof(float));
printf("%dbyte n", sizeof(double));
printf("%dbyte n", sizeof(char));
printf("%dbyte n", sizeof(char*));
}
할당된 크기를 알 수 있는 연산자
20. 변수의 함정!
‘A’와 65는 같다?
#include <stdio.h>
int main()
{
int num1, num2;
char alpha1, alpha2;
num1 = 65;
num2 = ‘A’;
alpha1 = 65;
alpha2 = ‘A’;
printf(“num1 is %d num2 is %d n”, num1, num2);
printf(“alpha1 is %c alpha2 is %d n”, alpha1, alpha2);
}
21. 변수의 함정!
‘A’와 65는 같다?
어떤 출력을 사용하느냐에 따라 값이 다르다.
아스키 코드를 사용하기 때문이다.
아스키 코드 10진수
0 ~ 9 48 ~ 57
A ~ Z 65 ~ 90
a ~ z 97 ~ 122
23. 산술 연산자
기본 산술 연산자
연산자 설명 사용 예
= 대입 연산자 a = 3
+ 더하기 a = 3 + 10
- 빼기 a = 4 – 10
* 곱하기 a = 3 * 10
/ 나누기 a = 10 / 3
% 나머지 a = 10 % 3
24. 산술 연산자
실제로 해보자
#include <stdio.h>
int main()
{
int a, b = 10, c = 3;
a = b + c;
printf(“10 + 3 = %d n”, a);
a = b - c;
printf(“10 - 3 = %d n”, a);
a = 10 * 3;
printf(“10 * 3 = %d n”, a);
a = 10 / 3;
printf(“10 / 3 = %d n”, a);
a = 10 % 3;
printf(“10 % 3 = %d n”, a);
}
25. 산술 연산자
대입 연산자와 증감 연산자
연산자 설명 사용 예 결과
+= 대입 연산자 a += 3 a = a + 3
-= 대입 연산자 a -=3 a = a – 3
*= 대입 연산자 a *=3 a = a * 3
/= 대입 연산자 a /=3 a = a / 3
%= 대입 연산자 a %=3 a = a % 3
++ 증감 연산자 a++, ++a a = a + 1 , a += 1
-- 증감 연산자 a--, --a a = a - 1, a -=1
26. 산술 연산자
실제로 해보자
#include <stdio.h>
int main()
{
int a = 10;
a += 5;
printf(“a+= %d n”, a);
a -= 5;
printf(“a -= %d n”, a);
a *= 5;
printf(“a *= %d n”, a);
a /= 5;
printf(“a /= %d n”, a);
a %= 5;
printf(“a %%= %d n”, a);
}
27. 산술 연산자
그럼 다음 결과는?
#include <stdio.h>
int main()
{
int a = 10;
a++;
printf(“a++ %d n”, a);
++a;
printf(“++a d n”, a);
a--;
printf(“a-- d n”, a);
--a;
printf(“--a %d n”, a);
}
28. 산술 연산자
b = a++;
b = ++a;
①
①
②
②
① a를 b에 대입시킨다
② a의 값을 1 증가시킨다
① a의 값을 1 증가시킨다
② a를 b에 대입시킨다
29. 관계 연산자
양쪽을 비교하여 참 또는 거짓을 판별할 수 있음
같으면 참(true, 1), 같지 않으면 거짓(false, 0)
주로 조건식에 많이 사용
연산자 설명 사용 예 결과
== 같다 a == 10 a와 10은 같다
!= 같지 않다 a != b a와 b는 같지 않다
> 크다 a > 3 a는 3보다 크다
< 작다 a < 100 a는 100보다 작다
>= 크거나 같다 a >= 50 a는 50보다 크거나 같다
<= 작거나 같다 a <= 1 a는 1보다 작거나 같다
30. 관계 연산자
실제로 해보자
#include <stdio.h>
int main()
{
int a = 100, b = 200;
… ….
아래의 결과가 나오도록 직접 짜보자
}
31. 논리 연산자
그리고, 또는, 부정
같으면 참(true, 1), 같지 않으면 거짓(false, 0)
주로 조건식에 많이 사용
연산자 설명 사용 예 결과
&& 그리고 (a > 10) && (b <100) (a > 10)이고 (b<100)
|| 또는 (a > 10) || (b < 100) (a > 10) 또는 (b<100)
! 부정(아니다) !(a> 10) (a>10)이 아니다
32. 논리 연산자
실제로 해보자
#include <stdio.h>
int main()
{
int a = 100;
… ….
아래 내용이 참인지 거짓인지 직접 짜보도록 하자.
}
연산자 설명 사용 예 결과
&& 그리고 (a > 10) && (b <100) (a > 10)이고 (b<100)
|| 또는 (a > 10) || (b < 100) (a > 10) 또는 (b<100)
! 부정(아니다) !(a> 10) (a>10)이 아니다
33. 비트 연산자
정수나 문자 등을 2진수로 변환한 후에 각 자리의 비트끼리
연산을 수행하는 것
연산자 설명 결과
& 비트 논리곱 둘다 1이면 1이다
| 비트 논리합 둘 중 하나만 1이면 1이다
^ 비트 배타적 논리합 둘이 같으면 0, 둘이 다르면 1이다
~ 비트 부정 1은 0으로, 0은 1로 변경한다
<< 비트 왼쪽 시프트 비트를 왼쪽으로 shift한다
>> 비트 오른쪽 시프트 비트를 오른쪽으로 shift 한다
34. 실습 1
printf()와 다양한자료형을 활용한 학점 계산기 만들기
5개의 과목을 변수로 만든다
각각의 학점을 변수에 담는다
5과목의 총점을 출력한다
5과목의 평균을 출력한다
실행결과
35. 실습 2
printf()와 다양한자료형을 활용한 학점 계산기 만들기
실습 1의 결과를 소수점 한 자리까지 출력되도록 만든다
실행결과
36. 변수의 크기
변수의 자료형에 따라 변수에 할당되는 크기가 달라짐
예를 들어, 실수는 기본적으로 소수점 6자리까지 출력이 되는
데 수정하여 소수점 자리수를 변경할 수 있음
39. scanf()란?
키보드로부터 값을 입력 받을 수 있는 표준 입력
예시
여러 개의 값을 한 번에 받을 수 있으며, 다양한 자료형에 대
해 입력 받을 수 있음
예시
printf(“%d n”, 100);
scanf(“%d”, &num);
특정한 변수에 입력 받은 값을 담는다
scanf(“%d %d %d”, &num1, &num2, &num3);
scanf(“%lf %d”, &sosu, &jungsu);