알고리즘

08/19 C언어 (추가 작성)

bebeghi3356 2023. 8. 19. 22:19

1. 

#include <stdio.h>       //전처리기 : C언어 헤더파일(컴파일러에 의해 다른 소스파일에 자동으로 포함된 소스코드파일) 정의

>> 변수 선언과 동시에 초기화

 

2.

int main(void) //void는 공백과 같으므로 비워둬도 같음

                         , int main()는 함수 헤더 

 

3.

printf() : 출력

scanf() : 

                 ex) int scanf("입력받을 문자의 서식", 변수의 주소 등등)

 

4. scanf 함수에서

 

(1) 특수문자

\a 경고음 소리 발생

\n 줄바꿈

\t 탭만큼 수평밀기

\\ 역슬래시(\)

\' 작은 따옴표

\" 큰따옴표

 

(2) 서식문자

%d(int 타입 정수형), %i 10진수 정수(양수 음수)

%x, %o 16진수 정수, 8진수 정수(양수만 가능)

%f(float 타입 실수), %lf(double 타입 실수) 10진수 실수 (양수 음수)

%c(char 타입 문자형) 한 개의 문자

%s(char* 타입 문자열) 문자열

%u 10진수 정수 (양수만)

 

(3) 변수 앞에 &을 붙이게 되면 이는 해당 변수의 주소를 가리키게 한다

 

(4) 

**C언어에서 scanf 를 하다 보면 보안 경고가 뜰 때가 있습니다.
이 경고는 무시하셔도 되며 상단에
#define _CRT_SECURE_NO_WARNINGS
을 입력하면 해결이 됩니다.

 

 

5.  scanf 예제

(1) while 무한루프를 통해서 scanf를 계속 받게 하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdbool.h> // C언어 bool 타입 
 
int main(void)
{
    char str[100];
 
    while (true)
    {
        printf("문장 입력 : ");
        scanf("%s", str);
        
        printf("입력한 문장 : %s\n\n", str);
    }
 
    return 0;
}

     

 

6. 변수 선언

int >> 정수형 4바이트의 데이터를 저장할 수 있는 메모리 공간 할당. (자료형)

num >> 그 메모리 공간의 이름은 num

 

7. 연산자

(1) 관계연산자

<    a < b    a가 b보다 작은가?

>    a > b    a가 b보다 큰가?

==  a == b  a와 b가 같은가?

!=   a != b   a와 b가 다른가?

<=  a <= b  a가 b보다 작거나 같은가?

>=  a >= b  a가 b보다 크거나 같은가?

 

(2) 논리연산자

 

&&   a && b    a와 b 모두 '참'이면 '참'을 반환

||(백스페이스)       a || b       a와 b 둘 중 하나라도 '참'이면 '참'을 반환

!       !a            a가 '참'이면 '거짓', a가 '거짓'이면 '참'을 반환

 

8. printf 서식 문자

%c : 문자 표기

%s : 문자열 표기

%f, %lf : 실수 표기

%u : 10진 정수 (부호 없음)

%d : 10진 정수 (부호 있음)

%o : 8진 정수 (부호 없음)

%x : 16진 정수 (부호 없음)

%lu : long 타입 (부호 없음)

%ld : long 타입 (부호 있음)

%llu : long long 타입 (부호 없음)

%lld : long long 타입 (부호 있음)

%p : 메모리 주소 표기

%% : 기호 % 표기

 

(1) 구구단 출력

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
 
int main(void)
{
    for (int i = 5; i < 7++i)
    {
        printf("구구단 %d단 시작\n", i);
 
        for (int j = 1; j < 10++j)
        {
            printf("%d x %d = %d\n", i, j, i*j);
        }
 
        printf("\n\n");
    }
 
    return 0;
}

9. 공백

scanf()는 ' '(space), '\t'(tab), '\n'(enter)를 모두 구분자로 사용한다.

공백을 포함한 입력 자체를 그대로 출력하기 위해서는 getchar()나 fgets()를 많이 사용한다.

 

(1)fgets()

\n 만을 구분자로 사용하기 때문에, 띄어쓰기/공백까지 입력받을 수 있어 적합한 함수이다.

 

원형: char* fgets(char* str, int num, FILE stream)

str: 읽어들인 문자열을 저장할 char 배열을 가리키는 포인터.

num: 마지막 NULL문자를 포함하여, 읽어들일 최대 문자 수.

stream: 문자열을 읽어들일 스트림의 FILE 객체를 가리키는 포인터.

리턴값: 성공적으로 읽어들였다면 str을 반환, 오류가 발생하면 NULL 반환

 

https://sincerity-sw268.tistory.com/69 

 

백준 11718 그대로 출력하기 [Python / C]

그대로 출력하기 문제. 입력 받은 대로 출력하는 프로그램을 작성하시오. 입력. 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각

sincerity-sw268.tistory.com

 

10.문자 변수 선언 (char)

 

#include <stdio.h>

 

int main()

{

  char c1 =  'a';

  char c2 = 'b';

 

  printf("%c, %d\n", c1, c1);

  printf("%c, %d\n", c2, c2);

 

  return 0;

 

**printf()에서 16진수를 출력하려면 서식지정자로 %x를 사용한다.

'알고리즘' 카테고리의 다른 글

c 언어  (0) 2023.10.12
백준 1008(C99/double형 변수)  (0) 2023.10.11
백준 알고리즘 2739번 구구단(c99)  (2) 2023.10.09
C 2주차  (0) 2023.09.12
0905 C~  (0) 2023.09.05