카테고리 없음

03 - 27 c++ 보충 1챕터

pp4037 2026. 3. 27. 23:50
// Main.c
// 챕터 1-5 : main() 함수와 printf() 함수
#include <stdio.h>         // stdio는 공구통 이름. #include는 공구통을 포함시키라는 명령어.

int main(void)
{
	printf("Hello, world!");// stdio라는 공구통 안에 든 printf()라는 망치를 사용하는 예시.
	// 탈출(\) 문자열. 시작 큰 따옴표와 끝 큰 따옴표로 감싸져 있다. 예시 : " \ "

	printf("\nHello, sparta!"); // \n : 개행(New line)
	printf("\tHello, sparta2\t"); // \t : 탭(Tap)
	printf("\'Hello, sparta3\'"); // \' : 따옴표 출력
	printf("\"Hello, sparta4\""); // \" : 쌍따옴표 출력
	printf("\\Hello, sparta5\\"); // \\ : 역슬래시 출력
	printf("%%Hello, sparta6%%"); // %% : % 출력

	//예제
	printf("\n");
	printf("\"Why won't you die?!\"\n");
	printf("\"Nanomachines, son.\"\n");
	printf("\"They harden in response to physical trauma.\"\n\"you can't hurt me, Jack.\"\n");
	printf("%%\\%%\\%%\\%%\n");
	printf("\"what did I just say?\"");

	return 0;
}

 

 

#include <stdio.h>
// 챕터 1-6 : 서식지정자
int main(void)
{
    //천천히 읽기 : 3245 * 2345 의 값을 %d 형식으로 출력한 뒤 개행을 한다.
    printf("%d\n", 3245 * 2342); //%d : decimal의 약자. 10진수로 대체된다.
    printf("%o\n", 3245 * 2345); //%o : octal의 약자. 8진수로 대체된다.
    printf("%x\n", 3245 * 2345); //%x : hexadecimal의 약자. x는 소문자, X는 대문자로 대체된다.
    printf("%u\n", 3245 * 2345); //%u : unsigned의 약자. 양수로 대체된다.
    printf("%c\n", 3245 * 2345); //%c : character의 약자. 문자로 대체된다.
    printf("%s\n", 3245 * 2345); //%s : string의 약자. 문자열로 대체된다.
    printf("%f\n", 3245 * 2345); //%s : floating point의 약자. 문자열로 대체된다.
    printf("%lf", 3245 * 2345); //%lf : double의 약자.

    return 0;
}

 

 

#include <stdio.h>

int main(void)
{
    printf("[%d]\n", 12345); // 12345 라는 숫자를 []에 감싸서 %d(decimal, 10진수) 형식으로 출력하고 개행하라는 코드.
    printf("[%2d]\n", 12345); // 12345 라는 숫자를 []에 감싸서 2칸을 확보하고 %d 형식으로 우측정렬하여 출력하고 개행하라는 코드.
    printf("[%7d]\n", 12345); // 12345 라는 숫자를 []에 감싸서 7칸을 확보하고 %d 형식으로 우측정렬하여 출력하고 개행하라는 코드.
    printf("[%-8d]\n", 12345); // 12345 라는 숫자를 []에 감싸서 8칸을 확보하고 %d 형식으로 좌측정렬하여 출력하고 개행하라는 코드.
    printf("[%09d]\n", 12345); //12345 라는 숫자를 []에 감싸서 9칸을 확보하고 0을 9칸 채워넣은 뒤, %d 형식으로 우측정렬하여 출력하고 개행하라는 코드.
    printf("[%+10d]\n", 12345); //12345 라는 숫자를 []에 감싸서 10칸을 확보하고 +부호를 추가한 뒤 %d 형식으로 우측정렬하여 출력하고 개행하라는 코드.

    return 0;
}

 

 

#include <stdio.h>

int main(void)
{
    printf("[%f]\n", 3.23235); // 3.23235 를 %f 형식으로 출력해라.
    printf("[%.2f]\n", 1.00155); // 1.00155 를 소수점 두 자리까지만 출력해라.
    printf("[%.10f]\n", 2.15551); // 2.15551 을 소수점 열 자리까지만 출력해라. 
    printf("[%9.2f]\n", 3.551514); // 3.551514 를 소수점 두 자리까지 표시하고 아홉 칸을 확보해 출력해라. 
    printf("[%11.10f]\n", 7.11511); // 7.11511 을 소수점 열 자리까지만 표시하고 열한 칸을 확보해 출력해라.
    printf("[%+30.11f]\n", 7.11646); // 7.11646 을 소수점 열한 자리까지만 표시하고 삼십 칸을 확보해 +부호를 추가한 뒤 출력해라.
    printf("[%-25.12f]\n", 8.16167); // 8.16167 을 소수점 열두 자리까지만 표시하고 스물다섯 칸을 확보해 좌측정렬로 출력해라.

    return 0;
}

 

 

 

// Main.c
// 챕터 1-7 : 리터럴
#include <stdio.h>

int main(void)
{
    printf("%d + %d = %d\n", 5000, 75000, 5000 + 75000);
    printf("%d\n", 2135498);
    printf("%o\n", 001002);
    printf("%x\n", 0xae);
    printf("%X\n", 0Xeef);
    printf("%c\n", 'A');
    printf("%s\n", "Hello, sparta!");

    printf("%f", 3.141592f);

    //예제

    printf("%s\n", "Excuse me. Do you happen to know what 25 multiplied by 70 is?");
    printf("%s", "That is ");
    printf("%d * %d = %d\n", 25, 70, 25 * 70);
    printf("%c\n", 'T');
    printf("%s\n", "T?");
    printf("%s\n", "Oh, I'm sorry. Thank you.");
    printf("%s", "Never mind!");

    return 0;
}
// Main.c
// 챕터 1-9 : 변수

#include <stdio.h>

int main(void)
{
	// 자료형 변수명 = 값;
	int Num = 2147483647; // 선언과 동시에 초기화
	double PI;            // 선언

	printf("Num = %d\n", Num);

	PI = 3.141592;
	printf("PI = %lf\n", PI);

	// 예제

	int A = 72;
	int B = 48;
	double C = 2.15785;

	printf("A = %d\n", A);
	printf("B = %d\n", B);
	printf("%d * %d = %d\n", A, B, A * B);
	printf("%d * %lf = %lf", B, C, B * C);

	return 0;
}
// Main.c
// 오버플로우
// 어려움

#include <stdio.h>

int main(void)
{
	// 1byte == 8bit
	// 2^8
	// -(2^8/2) ~ (2^8/2) - 1		0 ~ 2^8 - 1
	// -(2^7) ~ (2^7) - 1			0 ~ 256 - 1
	// -128 ~ 127					0 ~ 255

	char CharNum = -128;
	signed char SignedCharNum = -128;
	unsigned char UnsignedCharNum = 255;
	unsigned char UnsignedCharNumWithOverflow = -1;

	short ShortNum = -32768;
	signed short SignedShortNum = -32768;
	unsigned short UnsignedShortNum = 65535;
	unsigned short UnsignedShortNumWithOverflow = -1;

	printf("CharNum: %hhd\n", CharNum);
	printf("SignedCharNum: %hhd\n", SignedCharNum);
	printf("UnsignedCharNum: %hhu\n", UnsignedCharNum);
	printf("UnsignedCharNumWithOverflow: %hhu\n", UnsignedCharNumWithOverflow);

	printf("ShortNum: %hd\n", ShortNum);
	printf("SignedShortNum: %hd\n", SignedShortNum);
	printf("UnsignedShortNum: %hu\n", UnsignedShortNum);
	printf("UnsignedShortNumWithOverflow: %hu\n", UnsignedShortNumWithOverflow);

	return 0;
}

 

 

// Main.c
// 어려움

#include <stdio.h>

int main(void)
{
	char ch1 = 'A';
	char ch2 = '1';

	printf("ch1 = %c\n", ch1); // A
	printf("ch1 = %d\n", ch1); // 65
	printf("ch1 + 2 = %c\n", ch1 + 2); // C
	printf("ch1 + 2 = %d\n", ch1 + 2); // 67

	printf("ch2 = %c\n", ch2);
	printf("ch2 = %d\n", ch2);
	printf("ch2 + 2 = %c\n", ch2 + 2);
	printf("ch2 + 2 = %d\n", ch2 + 2);

	printf("'A' + 24 = %c\n", 'A' + 24);
	printf("'A' + 24 = %d\n", 'A' + 24);

	return 0;
}

//컴퓨터는 문자를 이해할 수 없음.

//컴파일러를 통해 이진패턴으로 만들고 그 과정을 빌드 프로세스라고 한다.

//char 자료형의 변수에 문자를 그대로 저장할 수 없음.(문자는 이진패턴에 존재하지 않기 때문) 별도의 처리가 필요함.

//형태 A에서 형태 B로 변환하는 것이 인코딩
//형태 B에서 형태 A로 변환하는 것이 디코딩

//ASCII
//문자 형태의 데이터와 숫자 형태의 데이터 사이의 인코딩 규악 중 하나.
//컴퓨터에 값을 저장하기 위해 숫자로 치환하는 요소.

//숫자 0은 48 : 이후의 값은 전부 비례하며 올라가기 때문. 1 == 49, 2 == 50...
//대문자 A는 65 : 이후의 값은 전부 비례하며 올라가기 때문. B == 66, C == 67...
//소문자 a는 97 : 이후의 값은 전부 비례하며 올라가기 때문. b == 98, c == 99...
// Main.c
//챕터 1 - 11 : 입력 기초
#define _CRT_SECURE_NO_WARNINGS 
	// scanf() 함수를 쓸때는 이걸 정의해줘야 합니다.
	// 다만 scanf() 함수는 stdio.h에 정의되어 있으므로, stdio.h 파일 인클루드 전에 정의해야 합니다.

#include <stdio.h>

int main(void)
{
	int Num;

	scanf("%d", &Num); // "Num에다가(&) %d 형식으로 입력받아라."

	printf("%d", Num); // "Num을 %d 형식으로 출력해라."

	//예제

	int A;
	int B;

	printf("\n");
	scanf("%d\n", &A);
	scanf("%d\n", &B);
	printf("%d - %d = %d", A, B, A - B);

	return 0;
}