/* 변수와 자료형 — 형을 먼저 정한다는 것의 뜻
   컴파일:  gcc c-variable.c -o var -Wall                */

#include <stdio.h>

int main(void)
{
    /* 만들 때 바로 값을 넣어 둡니다. 안 그러면 쓰레기 값이 들어 있습니다. */
    int    나이 = 20;
    double 키   = 168.5;
    char   등급 = 'A';       /* 문자 하나는 작은따옴표 */

    printf("%d살 / %.1fcm / %c등급\n", 나이, 키, 등급);
    printf("int 는 %zu 바이트, double 은 %zu 바이트\n",
           sizeof(int), sizeof(double));

    /* ── 여기가 C 에서 제일 많이 당하는 곳 ── */
    int 합계 = 5, 개수 = 2;

    printf("정수끼리 나누면: %d\n", 합계 / 개수);            /* 2   잘립니다 */
    printf("나머지:          %d\n", 합계 % 개수);            /* 1 */
    printf("한쪽을 실수로:   %.2f\n", 5.0 / 개수);            /* 2.50 */
    printf("형변환으로:      %.2f\n", (double)합계 / 개수);   /* 2.50 */

    /* 오버플로 — int 범위를 넘으면 조용히 엉뚱한 값이 됩니다 */
    int 큰수 = 2147483647;
    printf("int 최대에 1 더하면: %d\n", 큰수 + 1);   /* 음수가 됩니다 */

    long long 아주큰수 = 9000000000LL;
    printf("long long 이면: %lld\n", 아주큰수);

    /* ── 입력 받기: 변수 앞의 & 를 빼먹으면 실행 중에 죽습니다 ── */
    int 점수 = 0;
    printf("점수를 입력하세요: ");
    if (scanf("%d", &점수) == 1) {          /* 읽은 개수를 확인하는 습관 */
        printf("입력한 점수: %d\n", 점수);
        printf("10점 만점 환산: %.1f\n", 점수 / 10.0);
    } else {
        printf("숫자가 아닙니다.\n");
    }

    return 0;
}
