Professional Documents
Culture Documents
printf()와 데이터 형식
printf and Data Types
1. printf( ) 함수의 기본 형태 Basic form of printf funtion
01 #include <stdio.h>
02
03 int main( )
04 {
05 printf("100+100"); ---모두 글자로 취급한다.
06 printf("\n");
07 printf("%d", 100+100); --- 숫자를 계산해서 결과를 출력한다.
08 printf("\n");
09 }
1. printf( ) 함수의 기본 형태 Basic form of printf function
01 #include <stdio.h>
02
03 int main( )
04 {
05 printf("%d", 100, 200); ---%d는 1개, 숫자는 2개이다.
06 printf("\n");
07 printf("%d %d", 100); ---%d는 2개, 숫자는 1개이다.
08 printf("\n");
09 }
1. printf( ) 함수의 기본 형태 Basic form of printf function
01 #include <stdio.h>
02
03 int main( )
04 {
05 printf("%d / %d = %d", 100, 200, 0.5); ---%d가 3개, 숫자도 3개이다.
06 printf("\n");
07 }
1. printf( ) 함수의 기본 형태 Basic form of printf function
01 #include <stdio.h>
02
03 int main( )
04 {
05 printf("%d / ___①____ = ___②____ \n", 100, 200, 0.5); --- 정수 2개와 실수 1개를 출력한다.
06 printf(" ___③____ %c \n", 'a', 'K'); --- 문자 2개를 출력한다.
07 printf("%s %s \n", "안녕", "c 언어"); --- 문자열 2개를 출력한다.
08 }
1. printf( ) 함수의 기본 형태 Basic form of printf function
01 #include <stdio.h>
02
03 int main( )
04 {
05 printf("%d\n", 123);
06 printf("%5d\n", 123); --- 정수형 서식을 활용한다.
07 printf("%05d\n", 123);
08
09 printf("%f\n", 123.45);
10 printf("%7.1f\n", 123.45); --- 실수형 서식을 활용한다.
11 printf("%7.3f\n", 123.45);
12
13 printf("%s\n", "Basic-C");
--- 문자열형 서식을 활용한다.
14 printf("%10s\n", "Basic-C");
15 }
2. printf( ) 함수의 서식 지정 Formatting the printf () function
01 #include <stdio.h>
02
03 int main( )
04 {
05 printf("\n줄 바꿈\n연습 \n");
06 printf("\t탭키\t연습 \n");
07 printf("이것을\r덮어씁니다 \n");
08 printf("\a\a\a삐소리 3번 \n"); --- 컴퓨터에 따라서 소리가 한 번만 날 수도 있다.
09 printf("글자가 \"강조\"되는 효과 \n");
10 printf("\\\\\\ 역슬래시 세개 출력 \n");
11 }
2. printf( ) 함수의 서식 지정 Formatting the printf () function
• 변수 a, b가 모두 정수형 변수라면 한 줄로 표현 가능
• If variables a and b are all integer variables, they can be expressed in one line
01 #include <stdio.h>
02
03 int main( )
04 {
05 int a; --- 정수형 변수 a를 선언한다.
06 float b; --- 실수형 변수 b를 선언한다.
07
08 a = 123.45; --- 정수형 변수에 실수를 대입한다. ← 바람직하지 않다.
09 b = 200; --- 실수형 변수에 정수를 대입한다. ← 바람직하지 않다.
10
11 printf ("a의 값 = = > %d \n", a);
12 printf ("b의 값 = = > %f \n", b);
13 }
3. 변수의 이해 Understanding Variables
• 9행 수정 방안
3. 변수의 이해 - [응용 3-8] 변수에 변수 대입 예 ①
01 #include <stdio.h>
02
03 int main( )
04 {
05 int a, b; --- 정수형 변수 2개를 선언한다.
06 float c, d;
--- 실수형 변수 2개를 선언한다.
07
08 a = 100; --- a에 정수 100을 대입한다.
09 ___①____
--- b에 a 값을 대입한다.
10
11 c = 111.1f; --- c에 실수 111.1을 대입한다.
12 ___②____ --- d에 c 값을 대입한다.
13
14 printf ("a, b의 값 = = > %d , %d \n", a, b);
15 printf ("c, d의 값 = = > %5.1f , %5.1f \n", c, d);
16 }
3. 변수의 이해 Understanding Variables
01 #include <stdio.h>
02
03 int main( )
04 {
05 int a, b, c, d;
06
07 a = 100 + 100; --- a에 두 수의 계산 결과를 대입한다.
08 b = a + 100; --- b에 변수와 수의 계산 결과를 대입한다.
09 c = a + b - 100; --- c에 변수와 수의 계산 결과를 대입한다
10 ___①____ --- d에 a, b, c의 덧셈 결과를 대입한다.
11 printf ("a, b, c, d 의 값 = = > %d, %d, %d, %d \n", a, b, c, d);
12
13 ___②____ --- a, b, c, d에 모두 100을 대입한다(한 문장으로 처리한다).
14 printf ("a, b, c, d 의 값 = = > %d, %d, %d, %d \n", a, b, c, d);
15
16 a = 100;
17 a = a + 200; --- a에 자신의 a 값과 200을 더한 값을 다시 대입한다
18 printf ("a 의 값 = = > %d \n", a);
19 }
3. 변수의 이해 Understanding Variables
대입 연산자와 변수의 위치
Location of assignment operators and variables
• 규칙1: 대입 연산자(=)를 사용하면 오른쪽의 것이 왼쪽에 대입된다.
• Rule 1: Using the assignment operator (=), the right side is assigned to the left side.
• 규칙2: 대입 연산자(=)의 오른쪽에는 상수(숫자), 변수, 계산값이 모두 올 수 있다.
• Rule 2: The assignment operator (=) can be a constant (number), a variable, or a
calculated value to the right.
4. 데이터 형식과 배열 Data types and arrays
진수Binary
• 2진수 : 표현 가능한 숫자 0, 1
• Binary Number, 0 1
• 10진수 : 표현 가능한 숫자 0~9
• Decimal Number, 0 ~ 9
• 16진수 : 표현 가능한 숫자 0~9, A~F
• Hexadecimal 0~9, A~F
• 진수를 구분하여 표기하는 방법
– 2진수 : 102
– 10진수 : 1010
– 16진수 : 1016
4. 데이터 형식과 배열 Data types and arrays
바이트 Byte
• 비트 8개가 합쳐진 단위 Unit of 8 bits combined
4. 데이터 형식과 배열 Data types and arrays
01 #include <stdio.h>
02
03 int main( )
04 {
05 int a=100, b=200; --- 정수형 변수 a와 b에 값을 지정한다.
06 float result; --- 실수형 변수 result를 선언한다.
07
08 result = a / b; --- a를 b로 나눈 결과를 실수형 변수 result에 대입한다.
09
10 printf ("%f \n", result);
11 }
4. 데이터 형식과 배열 Data types and arrays
01 #include <stdio.h>
02
03 int main( )
04 {
05 char a, b, c; --- 문자형 변수 3개를 선언한다.
06
07 a = 'A'; --- 문자형 변수 a에 'A'를 대입한다.
08
09 printf(" %c \n", a); --- 문자형 변수 a를 문자형과 정수형으로 출력한다.
10 printf(" %d \n", a);
11
12 b = 'a'; ---문자형 변수 b에 'a'를 대입한다.
13 c = b + 5; ---문자형 변수 b에 5를 더해서 문자형 변수 c에 대입한다.
14 printf(" %c \n", b);
15 printf(" %c \n", c);
16
17 c = 90; ---문자형 변수 c에 숫자 90을 대입한다.
18 printf(" %c \n", c);
19 }
4. 데이터 형식과 배열 Data types and arrays
• 5행에서 문자형 변수 a, b, c 선언
• Declare character variable a, b, c in line 5
• 7행에서 변수 a에 문자 ‘A’ 대입, 9행에서 문자형으로 출력
• In the line 7, assign the letter 'A' to the variable a,
• 10행에서 문자형 변수 a를 정수형으로 지정하기 ‘65’ 출력
• Specify character type variable a as integer type in line 10 Output '65'
‘A’와 65는 동일한 값이지만 어떤 출력 서식을 사용하느냐에 따라 다른 값
출력
'A' and 65 are the same value, but depending on which output format
you are using, output a different value
4. 데이터 형식과 배열 Data types and arrays
– 출력 print
4. 데이터 형식과 배열 - [기본 3-14] 문자열 형식 사용 예 ①
01 #include <stdio.h>
02 #include <string.h>
03
04 int main( )
05 {
06 char str1[10]; ---문자형 배열 str1과 str2를 선언한다.
07 char str2[10];
08 char str3[10] = "CookBook"; ---문자형 배열 str3을 선언함과 동시에 문자열을 대입한다.
09
10 strcpy(str1, "Basic-C"); ---str1에 문자열을 대입한다.
11 strcpy(str2, str3); ---str3의 값을 str2에 복사한다.
12
13 printf("str1 = = > %s \n", str1); ---문자형 배열 str1, str2, str3을 출력한다.
14 printf("str2 = = > %s \n", str2);
15 printf("str3 = = > %s \n", str3);
16 }
4. 데이터 형식과 배열 - [응용 3-15] 문자열 형식 사용 예 ②
01 #include <stdio.h>
02
03 int main( )
04 {
05 char str[10] = "0123456789"; ---열 자리의 str 배열에 글자 10개를
대입한다.
06
07 printf("str = = > %s \n", str); ---str의 내용을 출력한다.
08
09 str[0] = 'I';
---str 배열에 글자 6개와 널 문자를 입력한다.
10 str[1] = 'T';
11 str[2] = 'C';
12 str[3] = 'o';
13 str[4] = 'o';
14 str[5] = 'k';
15 str[6] = '\0';
16
17 printf("str = = > %s \n", str); ---str의 내용을 출력한다.
18 printf("str[7] = = > %c \n", ___①____ ); ---str[7]의 한 글자를 출력한다.
19 printf("str[50] = = > %c \n", ___②____ ); ---str[50]의 한 글자를 출력한다.
20 }
4. 데이터 형식과 배열
• 5행
– str 배열을 선언하면서 문자열 대입 Assigning a string while declaring str array
– 널 문자가 없기 때문에 출력 시 문제 발생 There is no null character, so there is a problem in output
01 #include <stdio.h>
02
03 int main( )
04 {
05 int data; ---정수형 변수를 선언한다.
06
07 printf("정수를 입력하세요 = = > ");
08 scanf("%d", &data); ---키보드로 정수를 입력받는다.
09
10 printf("10진수 = = > %d \n", data); ---10진수(%d), 16진수(%X), 8진수(%o)를 출력한다.
11 printf("16진수 = = > %X \n", data);
12 printf("8진수 = = > %o \n", data);
13 }
[예제모음 05] 입력하는 정수의 진수 결정
[예제모음 05] 입력하는 정수의 진수 결정
01 #include <stdio.h>
02
03 int main( )
04 {
05 int type, data;
06
07 printf("입력진수 결정 <1>10 <2>16 <3>8 : ");
08 scanf("%d", &type); ---키보드로 1~3 중 하나를 입력받는다.
09
10 printf("값 입력 : ");
11
12 if(type = = 1) ---입력값이 1이면 10진수를 입력받는다.
13 { scanf("%d", &data); }
14
15 if(type = = 2) ---입력값이 2이면 16진수를 입력받는다.
16 { scanf("%x", &data); }
17
18 if(type = = 3) ---입력값이 3이면 8진수를 입력받는다.
19 { scanf("%o", &data); }
20
21 printf("10진수 = = > %d \n", data); ---입력받은 data 값을 10진수, 16진수, 8진수로 변환하여
22 printf("16진수 = = > %X \n", data); 출력한다.
23 printf("8진수 = = > %o \n", data);
24 }
[예제모음 06] 데이터형의 크기 확인
[예제모음 06] 데이터형의 크기 확인
01 #include <stdio.h>
02
03 int main( )
04 {
05 printf("int 형의 크기\t\t\t = = > %d\n", sizeof(int)); --sizeof( ) 함수로 각 데이터형의
06 printf("unsigned int 형의 크기\t\t = = > %d\n", sizeof(unsigned int)); 크기(바이트 수)를 출력한다. 이때
컴파일러에 따라서 long double
07 printf("short 형의 크기\t\t\t = = > %d\n", sizeof(short)); 형은
08 printf("unsigned short 형의 크기\t = = > %d\n", sizeof(unsigned short)); 16바이트 크기일 수도 있다.
09 printf("long int 형의 크기\t\t = = > %d\n", sizeof(long int));
10 printf("unsigned long int 형의 크기\t = => %d\n", sizeof(unsigned long int));
11 printf("float 형의 크기\t\t\t = = > %d\n", sizeof(float));
12 printf("double 형의 크기\t\t = = > %d\n", sizeof(double));
13 printf("long double 형의 크기\t\t = = > %d\n", sizeof(long double));
14 printf("char 형의 크기\t\t\t = = > %d\n", sizeof(char));
15 printf("unsigned char 형의 크기\t\t = = > %d\n", sizeof(unsigned char));
16 }
[예제모음 07] 입력된 문자열을 반대 순서로 출력
[예제모음 07] 입력된 문자열을 반대 순서로 출력
01 #include <stdio.h>
02
03 int main( )
04 {
05 char str[10]= " "; ---문자열을 입력받을 str 배열을 준비한다.
06 int i; ---첨자를 준비한다.
07
08 printf("문자열을 입력 = = > ");
09 scanf("%s", str); ---문자열을 입력받는다.
10
11 for(i = sizeof(str) - 1; i >= 0; i- -)
---str 배열에 들어 있는 문자열을 맨 뒤의 str[9]부터 str[0]까지
12 { 출력한다. 즉 입력한 순서의 반대로 출력되는 것이다.
13 printf ("%c", str[i]);
14 }
15 printf("\n");
16 }
[3장. 요약]
1 printf( ) 함수
➊ 모니터에 무언가를 출력하는 역할.
➋ 형식: printf("서식", 인자 …)
➌ 정수는 %d, 실수는 %f, 문자는 %c, 문자열은 %s 서식 사용.
2 printf( ) 함수의 서식
➊ %5d는 다섯 자리로 정수 출력.
➋ %7.3f는 전체 일곱 자리에 소수점 아래 세 자리의 실수 출력.
➌ \n은 새로운 줄로 이동, \t는 다음 탭으로 이동, \\는 \를 출력하는 등의 다양한 서식
문자 존재.
3 변수에 값을 대입하는 방법
• ‘10=100’처럼 왼쪽에 상수가 오면 안 되고 ‘a=100’과 같이 왼쪽에 변수가 와야 한다.
• 오른쪽에는 상수, 변수, 계산값 등 무엇이든지 올 수 있다.
[3장. 요약]
4 데이터 형식
❶ 컴퓨터에서 내부적으로 사용되는 것은 2진수, 2진수 네 자리를 묶은 것이 16진수.
➋ 정수 데이터 형식에는 short, int, long 등이 있으며 부호 없이 사용하려면 unsigned를
붙인다.
➌ 실수 데이터 형식에는 float, double 등이 있다.
➍ 한 글자를 저장하는 문자 데이터 형식에는 char, 여러 글자를 저장하기 위한 문자열
데이터 형식은 문자 데이터 형식의 배열 사용. 단, 문자열의 끝을 표시하는 널 문자를 저
장하기 위해 ‘실제 문자열 길이+1’로 크기 선언.
감사합니다.