< 프로그램 실행의 단계 >
인간이 이해 가능한 코드 -> 컴파일러 -> 프로그램 실행
인간이 이해 가능한 코드 : c, c++...
컴파일러 : 작성된 코드를 컴퓨터가 이해하기 쉽게 바꾼다 = 어셈블리어
프로그램 실행 : 어셈블리어로 작성된 코드 컴퓨터가 실행
정수 : 숫자 중에 소수점 없는 숫자
실수 : 우리가 보통 아는 그냥 숫자 (정수는 실수에 포함)
변수에 무슨 내용을 담을 것인가? -> 자료형
정수형 : -2^31 ~ 2^31-1 대략 -21억 ~ 21억
실수형 : 범위가 존재 하나 복잡 / 내가 원하는 수는 그냥 넣을 수 있다고 생각하자
< 변수와 자료형>
#include <iostream>
#include <stdio.h>
int main() {
std::cout << "hello world\n";
printf("hello\n");
int a;
int b;
int c;
a = 1;
b = 3;
c = 5;
printf("%d %d %d", a, b, c); // 정수 출력은 %d
//printf("%d %d %d", a); //error
printf("\n");
printf("%%\n");
int sum = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10;
double avg = sum / 10;
printf("%lf", avg); // 결과는 5.000.. 5.5가 나오지 않는다 / 정수와 정수 사이의 연산 결과는 정수 / 실수 출력은 %lf
// 1. sum을 double 로 바꾸거나
// 2. 10.0 으로 나누거나
// 3. (double)sum / 10 과 같이 수식에서 캐스팅 5.5 형태 출력된다 / 다른 자료형 사이의 연산 결과는 더 큰 범위의 연산으로 취급
// %f vs %lf ??
return 0;
}
<입력>
// 간단한 계산기
#include <stdio.h>
int main() {
int a, b;
scanf("%d %d", &a, &b);
printf("%d + %d = %d\n", a, b, a + b);
printf("%d - %d = %d\n", a, b, a - b);
printf("%d * %d = %d\n", a, b, a * b);
printf("%d / %d = %lf\n", a, b, (double)a / b); // %lf = 소수점 6자리 까지 출력
printf("%d %% %d = %d\n", a, b, a % b);
printf("%d / %d = %.2lf\n", a, b, (double)a / b); // --> 소수점 2자리 까지 반올림 해서 출력
return 0;
}