C 4Day (20160112)
by jennysgap자료형 변환
- 연산식에서의 자료형 변환
서로 다른 자료형이 연산을 하려고 할 때 주기억 장소에 차지하는 기억 공간의 크기가 작은 자료형이 기억 공간의 크기가 큰 자료형으로 변환하는 것 - 대입문에 의한 자료형 변환
연산자 우측에 위치한 피연산자의 자료형이 연산자 좌측에 위치한 피연산자의 자료형으로 변환 - cast연산자에 의한 자료형 변환
형변환 예제
1 2 3 4 5 6 7 8 9 10 11 12 | #include <stdio.h> int main(void) { int num1; float num2=367.78; num1=num2; printf("num1=%d\n", num1); return 0; } | cs |
- 실수형이라도 정수형으로 변환 가능
- 프로그래머들이 밤을 새는 이유 = 논리적인 오류
num2=367.78 소수점 자리에 숫자가 있지만 이를 num1 정수로 표현할 때 소수점을 없애고 출력하기 때문이다.
강제 형변환 예제
1 2 3 4 5 6 7 8 9 10 11 | #include <stdio.h> int main(void) { int num1=25, num2=3; printf("num1 / num2 = %d\n", num1 / num2); printf("num1 / num2 = %f\n", (float)num1 / (float)num2); printf("num1 * num2 = %d\n", num1 * num2); return 0; } | cs |
정수 / 정수 = 정수 (?)
정수끼리 나눈다고 하더라도 정수가 나온다는 보장없음. 그러므로 소수점을 표현하기 위해 (자료형: float)을 사용하는데 이를 'cast연산'이라고 한다.
정렬 예제
#include <stdio.h>
int main(void)
{
printf("%5d\n", 10); //5칸 오른쪽 정렬
printf("%-5d\n", 10); //5칸 왼쪽 정렬
return 0;
}
표준 입력 함수
scanf : 사용자에게 직접 값을 받아 표현하는 함수. printf와 사용법이 똑같은데, 하나 다른점은 변수명 앞에 무조건 &연산자를 입력해야 한다.
#include <stdio.h>
int main(void)
{
int num; // 선언을 꼭 해야 한다.
//scanf("서식문자", &변수명); //scanf 사용법, 입력방법
printf("정수를 하나 입력하세요 : ");
scanf("%d", &num);
printf("입력하신 정수는 %d입니다.\n\n", num);
return 0;
}
표준입력함수(실수) 예제
#include <stdio.h>
int main(void)
{
float num;
printf("실수를 하나 입력하세요 : ");
scanf("%f", &num);
printf("입력하신 실수는 %f입니다. \n\n", num);
return 0;
}
double로 입력하면 값이 이상해짐. 그렇다면 못쓸까요? No
입력 값을 받을 때, %|f로 받으면 됨
#include <stdio.h>
int main(void)
{
double num;
printf("실수를 하나 입력하세요 : ");
scanf("%|f", &num);
printf("입력하신 실수는 %f입니다. \n\n", num);
return 0;
}
표준입력함수(문자) 예제
#include <stdio.h>
int main(void)
{
char num;
printf("문자를 하나 입력하세요 : ");
scanf("%c", &num);
printf("입력하신 문자는 %c입니다. \n\n", num);
return 0;
}
표준입력함수(정수+실수) 예제
#include <stdio.h>
int main(void)
{
int num1;
float num2;
printf("정수를 하나 입력하세요 : ");
scanf("%d", &num);
printf("입력하신 정수는 %d입니다. \n\n", num1);
printf("실수를 하나 입력하세요 : ");
scanf("%f", &num);
printf("입력하신 실수는 %f입니다. \n\n", num2);
return 0;
}
표준입력함수(문자+문자) 예제
#include <stdio.h>
int main(void)
{
int num;
char ch;
printf("정수를 하나 입력하세요 : ");
scanf("%d", &num);
printf("입력하신 정수는 %d입니다. \n\n", num);
fflush(stdin);
printf("문자를 하나 입력하세요 : ");
scanf("%c", &num);
printf("입력하신 문자는 %c입니다. \n\n", ch);
return 0;
}
문자 + 문자 예제는 몰라도 됨 (그러나 수업시간에 했으니 적어봄)
문자같은 경우 엔터나 스페이스도 인식하기 때문에 버퍼를 지워주기 위해 fflush를 사용
표준입력함수(정수의 합) 예제
#include <stdio.h>
int main(void)
{
int n1, n2, sum;
printf("덧셈할 두 수를 입력하세요.. \n ");
scanf("%d %d", &n1, &n2);
sum=n1+n2;
printf("두 수의 합은 %d입니다. \n\n", sum);
return 0;
}
두 개 정수를 입력받아서 합을 출력하는 것
* 계행(\n)은 printf 출력할 때만 사용함 (scanf에는 계행 사용 No!)
산술연산자
'%' 연산의 사용예
- 짝, 홀수 구분
10%2 == 0 (짝수)
15%2 == 1 (홀수) - 배수 구분
123%3 == 0 (3의 배수) - 숫자의 자리수 구분하기
156%10 == 6
156/10 == 15
15%10 == 5
15/10 == 1
값 입력 받기
}
'BOX' 카테고리의 다른 글
C 7Day (20160115) (0) | 2016.01.21 |
---|---|
C 6Day (20160114) (0) | 2016.01.20 |
C 5Day (20160113) (0) | 2016.01.20 |
C 3Day (20160111) (0) | 2016.01.20 |
C 2Day (20160108) (0) | 2016.01.20 |
블로그의 정보
jennysgap
jennysgap