본문 바로가기

C언어/예습

[C언어 예습] DAY4_헤더파일, 연산자, 조건식

헤더파일

항상 C파일 상단에서 사용하기 때문에 헤더라고 한다.

헤더파일들을 추가할 때에는 사용하고자 하는 파일에서
#include 해준다.


기존에 설치 시 내부적으로 포함되어 있는 헤더파일들은 <>로 추가하고
내가 만든 헤더파일은 ""로 추가한다.

 

소스 파일 말고 헤더 파일에서 소스를 추가 > 헤더파일.h를 만들어야함

 

 * #pragma once : 전처리 명령어
  C++용어
  해당명령어가 사용되면 한번만 컴파일 함. ->하지만 우리는 C언어기 때문에 그냥 지워주면 됌.

https://wiserloner.tistory.com/264


연산자

비트연산

  1. AND              &                  : 두 비트가 모두 1일 때 1
  2. OR                 |                   : 둘 중 하나라도 1일 때 1
  3. XOR              ^                   : 두 비트가 서로 다른 수일 때 1
  4. NOT              ~                   : ~a = -a -1 , (NOT은 음수)
  5. LEFT SHIFT   A<<B                : a비트를 좌로 b만큼 이동 (숫자가 커질수도 작아질 수도 있다.)

  6. RIGHT SHIFT    A>>B             : a비트를 우로 b만큼 이동 숫자가 작아진다.

          * 비트가 넘어가면 버려지고 빈 자리는 0으로 채워진다.

 

 

 


조건식

int a = 0;       결과가 한개 : a에 0넣어. 끝 (조건식x)
a<0;             응, 아니 결과가 2개인 식을 조건식이라고 한다. (true, false)

 


비교연산자(조건연산자)

  1. == : 같다.
  2. != : 같지 않다.
  3. >,< : 미만, 초과
  4. >=,<= : 이상, 이하


산술연산자
 A,B는 조건식

  1. !            : NOT연산자 !true == false
  2. A&&B    : AND연산자 A와 B모두 참이여야 참
  3. A||B        : OR연산자 둘 중 하나라도 참이면 참


삼항연산자

  조건식 ? true : false
   1          2       3

 

(1) result = 조건식 ? 참일 때 값 : 거짓일 때 값 통채로를 그 결과값에 따른 값으로 보자!
(2) 조건식? 참일 때 실행할 문장 : 거짓일 때 실행할 문장

 


#include <stdio.h>

void main() {
	//정수 2개를 입력받고 대소 비교하기
	int num1 = 0, num2 = 0, result = 0;
	printf("정수 2개를 입력하세요\n");
	scanf_s("%d %d", &num1, &num2);
	//printf("%d %d\n", num1, num2);

	//result = num1 > num2 ? num1 : num2;
	//printf("큰 수 : %d\n", result);
	//num1 > num2 ? printf("큰 수 : %d\n", num1) : printf("큰 수 : %d\n", num2);
	//대소비교는 그대로 놔두고 같으면 "같다"출력 추가하기
	num1 > num2 ? printf("큰 수 : %d\n", num1) : num1 == num2 ? printf("두 수는 같다\n", num2) :  printf("큰 수 : %d\n", num2);
}

 


Quiz (한가지 정답)

 

#include <stdio.h>
//퀴즈 게임 만들기
void main() {
	//Q.다음 중 프로그래밍 언어가 아닌 것은?
	//1.JAVA
	//2.Python
	//3.C언어
	//4.망둥어
	int choice = 0;
	int answer = 4;

	printf("Q.다음 중 프로그래밍 언어가 아닌 것은?\n");
	printf("1.JAVA\n2.Python\n3.C언어\n4.망둥어\n\n");
	scanf_s("%d", &choice);

	choice == answer ? printf("정답!\n") : printf("오답ㅠㅠ\n");
}

Quiz (두가지 정답)

 

#include <stdio.h>
//퀴즈 게임 만들기
void main() {
	//Q.다음 중 프로그래밍 언어가 아닌 것은?
	//1.JAVA
	//2.장어
	//3.C언어
	//4.망둥어
	int choice = 0;
	int answer1 = 4;
	int answer2 = 4;

	printf("Q.다음 중 프로그래밍 언어가 아닌 것은?\n");
	printf("1.JAVA\n2.장어\n3.C언어\n4.망둥어\n\n");
	scanf_s("%d", &choice);

	choice == answer1||answer2 ? printf("정답!\n") : printf("오답ㅠㅠ\n");


--------------------------------------------------------------------------------

"%d %d" 중간의 공백은 구분점임
"%d-%d" - 일경우 -가 구분점

 

 

 

 

 

 


심리테스트 프로그램 만들기

 

Q. 오늘은 당신의 생일입니다.
친구에게 상자를 선물로 받았습니다.
이 상자 안에는 무엇이 들어있었을까요?

1. 꽃
2. 손수건
3. 깜짝상자
4. 보석

꽃 : 당신은 거짓말을 못해서 안하는 사람입니다.
손수건 : 당신은 너무 정직한 사람입니다.
깜짝상자 : 당신은 눈 하나 깜짝하지 않고 아무렇지 않게 거짓말을 하는 사람입니다.
보석 : 당신은 때에 따라 가끔씩은 거짓말을 합니다.

 

#include <stdio.h>

void main() {

	int choice = 0;
	int answer1 =1 , answer2 =2, answer3 =3 , answer4 = 4;

	printf("Q. 오늘은 당신의 생일입니다.\n친구에게 상자를 선물로 받았습니다.\n이 상자 안에는 무엇이 들어있었을까요?\n\n");
	printf("1. 꽃\n2. 손수건\n3. 깜짝상자\n4. 보석\n\n");
	scanf_s("%d", &choice);

		choice == answer1 ? printf("꽃 : 당신은 거짓말을 못해서 안하는 사람입니다.\n") :
		choice == answer2 ? printf("손수건 : 당신은 너무 정직한 사람입니다.\n") :
		choice == answer3 ? printf("깜짝상자 : 당신은 눈 하나 깜짝하지 않고 아무렇지 않게 거짓말을 하는 사람입니다.\n") :
		choice == answer4 ? printf("보석 : 당신은 때에 따라 가끔씩은 거짓말을 합니다.\n") :
		printf("\n잘못입력하셨습니다.\n\n");
}