180 likes | 437 Views
printf() 함수 p.69. 표준 출력 함수 printf () 사용 형식 " 형식 지정 제어 문자열“ 이 안의 내용은 화면에 그대로 출력된다 . 예외 ) % 로 시작하는 변환 명세는 오른쪽 인수와 1:1 차례로 적용되며 반드시 인수의 자료 형에 맞는 것을 사용해야 함. 변환명세 (conversion specification). printf (“ … %d … %f …“, 정수표현식 , 실수표현식 ); . printf() 에서의 형식 지정 제어 문자 p.71. % 변환명세
E N D
printf() 함수 p.69 • 표준 출력 함수 printf() 사용 형식 • "형식 지정 제어 문자열“ • 이 안의 내용은 화면에 그대로 출력된다. • 예외) %로 시작하는 변환 명세는 오른쪽 인수와 1:1 차례로 적용되며 반드시 인수의 자료 형에 맞는 것을 사용해야 함 변환명세 (conversion specification) printf (“ … %d … %f …“, 정수표현식, 실수표현식);
printf()에서의 형식 지정 제어 문자 p.71 • %변환명세 • 자료형마다 정해져 있다. • 표 3.2 : 출력 형식 지정 제어 문자의 종류와 출력 결과
예제 3.1 p.69 2 : #include <stdio.h> 4 : main() 5 : { 6 : int su1 = 5, su2 = 6, gop; double ave=97.53; 8 : gop = su1 * su2; 9 : printf("*** 연산 결과 ***\n"); 10 : printf("%d와 %d의 곱은 %d입니다.\n", su1, su2, gop); printf("평균 : %lf \n", ave); 11 : }
이스케이프 시퀀스(탈출 문자) p.70 • escape sequence • 원래의 의미를 벗어나 특별한 의미를 가짐 • ‘\’로 시작 • 예 : ‘\n’ 은 두 문자가 아니라 줄 바꿈 문자 한 개를 의미 • 표 3.1 : ESCAPE 문자의 종류와 기능 p.71 • \n : 새 줄로 이동 기능 • \t : tab 키 기능 • \’ , \\, \” : 각각 ’, \, ” 문자 • 예) printf(“홍길동\t21 \n”); printf(“성룡\t42 \n”); printf(“제갈공영\t25 \n”); printf(“우리의 \”경북대학교\”는”);
출력 제어 문자열에서 필드 폭과 정렬 • 출력하려는 정수 값의 필드 폭(width)을 지정하기 • ‘%’와 ‘d’ 사이에 폭을 나타내는 정수를 명시 • %3d 전체 3자리, 우측정렬 • 필드 폭 앞의 ‘–’ : 좌측정렬 지정 • printf(“%3dcm”, 20);
출력 제어 문자열에서 필드 폭과 정렬 • 실수 필드 폭 • %5.2f • (소수이하자리포함한) 전체 폭은5 • 소수점 이하 자리수의 폭은 2 • %10f • 전체 폭은 10 • 소수점 이하 자리수의 폭은 기본(default)인 6으로 • %.2f • 소수점 이하 자리수의 폭만 2로 설정, 소수점 위의 폭은 필요한 만큼만 • %6.f • 소수점 이하 값은 출력하지 않음 1.234를 출력하기
필드폭의 필요성 예 (노트) • 다음의 결과는? • 각 줄의 점수를 오른쪽 끝이 맞게 출력하려면? %d 대신%3d를 사용하면? std1 = 90; std2 = 50; std3 = 100; printf(“1:%d(P)\n”, std1); printf(“2:%d(F)\n”, std2); printf(“3:%d(P)\n”, std3);
실수의 출력 예와 실행 결과 p.74 4 : main() { 6 : float su1 = 123.456f; 7 : float su2 = 12.3456789f; 8 : double su3 = 1.23456789; 9 : 10 : printf("su1 = %f\n", su1); 11 : printf("su2 = %f\n", su2); 12 : printf("su1 = %6.2f\n", su1); 13 : printf("su3 = %11.8f\n", su3); 14 : printf("su3 = %-11.8f\n", su3); 15 : }
예제 문자와 문자열의 출력 방법 p.76 6 : char ch ='A‘; ① 7 : 8 : printf("문자 = %3c\n", ch); ② 9 : printf("문자열 = %-20s\n", "character string"); %3d로 하면?
예제 지수형 실수의 출력 예 p.77 su = 1.234568e+006 su = 1.2346e+006 Press any key to continue 2 : #include <stdio.h> 4 : main() 5 : { 6 : float su = 1234567.89; 7 : 8 : printf("su = %e\n", su); ① 9 : printf("su = %12.4e\n", su); ② 10 : } %12.4e에서 4자리 %9.4e로 지정했다면 최소 11자리가 필요한데 9자리로 지정했으므로 오른쪽으로 더 자리를 확보하여 출력해준다.
4.1 산술 연산자 • 표 4.1 : 산술 연산자의 종류 p.95
4.1산술 연산자 • '%’ • 좌측의 피연산자를 우측의 피연산자로 나눈 나머지를 구한다. 16%2 0, 16 % 5 1 정수형 자료에 대해서만 사용 가능 • 주의 • 정수형/정수형 결과 값이 정수형이 된다. • 정수형과 정수형간의 연산 결과는 정수이기 때문 • 그러나 피연산자 중 하나라도 실수라면 결과 값은 실수형 • 6/2 • 6/4 • 6/4. • 1/2
예제 p.95 6 : int su1 = 20, su2 = 3; 7 : 8 : printf("%d + %d = %d\n", su1, su2, su1 + su2); 9 : printf("%d - %d = %d\n", su1, su2, su1 - su2); 10 : printf("%d * %d = %d\n", su1, su2, su1 * su2); 11 : printf("%d / %d = %d\n", su1, su2, su1 / su2); 12 : printf("%d %% %d = %d\n", su1, su2, su1 % su2); %d와 같은 변환명세가 아닌 실제로 %를 출력하기 위해 (p.96의 <NOTE> 참조하기)
4.2 관계 연산자 • 두 피연산자간의 대소 관계를 비교하여 참(1) 또는 거짓(0) 결과값을 얻는다. • 표 5.2 관계 연산자의 종류 • 주의 • 논리값 참과 거짓이 수치로 평가될 때는 다음과 같다. • 참 1 • 거짓 0
예제 4.2 • 관계 연산자의 사용 예와 실행 결과 p.99 float su1 = 3.01, su2 = 3.0; printf("변수 su1과 su2의 크기 비교 결과 : %d\n", su1 <= su2); printf("변수 su1과 su2의 크기 비교 결과 : %d\n", su1 >= su2); printf("변수 su1과 su2의 크기 비교 결과 : %d\n", su1 == su2); printf("변수 su1과 su2의 크기 비교 결과 : %d\n", su1 != su2); odd = n % 2; if (odd) printf(“%d는 홀수”, n); else printf(“%d는 짝수”, n);
4.4논리 연산자 p.102 • 참과 거짓에 대한 논리 연산을 수행하여 결과값으로 참(1) 또는 거짓(0)을 구함 • 주의 : 수치값을 논리값으로 평가해야 한다면 0 거짓 0외의 다른 모든 수치 참
kor가 80과 90사이라면 참 그렇지 않다면 거짓을 갖는 식을 표현하시오. 80 <= kor <=90 ? 잘못 kor에 85가 저장된 경우 kor에 100이 저장된 경우
yy년이 윤년이라면 참이 되는 논리식을 표현하시오. • 400으로나눠 떨어지면 윤년 • 4로 나눠 떨어지지만 100으로 나눠 떨어지지 않아야 윤년