bool
: 1 byte (8bit)
참 거짓을 판단 (true / false), 정수형
char
: 1 byte (8bit)
~128 ~127 숫자를 저장
- 숫자 형태로 출력하고 싶다면 %d
- 문자 형태로 출력하고 싶다면 %c
대부분의 문자 / 문자열을 저장하는데 유용하게 사용
#include <cstdio> int main() { char c = 'a'; // ' (작은 따옴표)를 이용해서 문자 한 개를 엮어주게 되면 아스키 테이블에 있는 이 숫자로 치환이 돼서 변수에 들어가게 되고 그 값이 %c를 만나서 문자 형태로 출력이 된다 printf("%d\n", c); return 0; } 출력값 97 |
#include <cstdio> int main() { if (97 == 'a'){ printf ("97은 'a' 입니다."); } return 0; } // 97 == 'a' 이 표현은 우리가 보기엔 문자로 보이지만 이것이 c언어에서 봤을 때는 이것이 숫자로 치환이 돼서 계산됨 |
int
: 4 byte (32bit)
-2, 147, 483, 648, ~2, 147, 483, 647의 숫자를 저장
integer의 약자로 정수를 의미
컴퓨터에서 가장 빨리 수행할 수 있는 정수 연산 단위
float
: 4 byte (32bit)
소수점수를 저장
float point 의 약자
부동 소수점수로 우리가 흔히 실수형태의 자료형을 계산할 때 이용
double
: 8 byte (64bit)
소수점수를 저장
double precision float point의 약자
2배 정밀도를 갖는 소수점수
float 보다 표현 범위가 더 넓다
"%05d" : 다섯자리 숫자 그보다 작으면 0으로 채워줌
"%05.2f" : 다섯자리 숫자인데 . 도 포함함, .2는 소수점 두번째 자리 까지 표기
연습 프로그래밍 #1
사용자로부터 실수형 변수 1과 실수형 변수 2를 입력받고
문자 '+', '-', '/', '*', '%'를 연산자로 입력받아
해당 연산을 수행하는 계산기를 만들어 주세요
실수부의 숫자는 소수점수 3자리까지 출력하며
if가 아닌 switch 구문을 활용해 주세요
#include <cstdio> float getFloat(); // 사용자로부터 실수를 입력받는 함수 char getChar(); // 사용자로부터 문자를 입력받는 함수 int main() { float value1; float value2; char oper; float result; value1 = getFloat(); value2 = getFloat(); oper = getChar(); // 함수 호출 switch (oper){ case '+': result = value1 + value2; printf("결과는 %.3f 입니다.\n", result); break; case '-': result = value1 - value2; printf("결과는 %.3f 입니다.\n", result); break; case '/': result = value1 / value2; printf("결과는 %.3f 입니다.\n", result); break; case '*': result = value1 * value2; printf("결과는 %.3f 입니다.\n", result); break; case '%': result = (int)value1 % (int)value2; //나머지 연산은 int로 형변환 해야함 printf("결과는 %.3f 입니다.\n", result); break; default: printf("올바르지 않은 연산자 입니다.\n"); break; } return 0; } float getFloat() { float input; fseek(stdin, 0, SEEK_END); printf ("실수를 입력해주세요: "); scanf("%f", &input); return input; } char getChar() { char input; fseek(stdin, 0, SEEK_END); printf("문자를 입력해주세요: "); scanf("%c", &input); return input; } |
간단하게 정리한 경우
#include <cstdio> float getFloat(); // 사용자로부터 실수를 입력받는 함수 char getChar(); // 사용자로부터 문자를 입력받는 함수 int main() { float value1; float value2; char oper; float result; bool valid = true; //default인 경우 오류나는 것 해결 방법 value1 = getFloat(); value2 = getFloat(); oper = getChar(); // 함수 호출 switch (oper){ case '+': result = value1 + value2; break; case '-': result = value1 - value2; break; case '/': result = value1 / value2; break; case '*': result = value1 * value2; break; case '%': result = (int)value1 % (int)value2; //나머지 연산은 int로 형변환 해야함 break; default: valid = false; break; } if (valid == true){ printf("결과는 %.3f 입니다.\n", result); // 쓸데없이 긴 코드 다 없앰 } else{ printf("올바르지 않은 연산자 입니다.\n"); } return 0; } float getFloat() { float input; fseek(stdin, 0, SEEK_END); printf ("실수를 입력해주세요: "); scanf("%f", &input); return input; } char getChar() { char input; fseek(stdin, 0, SEEK_END); printf("문자를 입력해주세요: "); scanf("%c", &input); return input; } |
과제형 연습 프로그래밍
예제 프로그램에서 만든 프로그램에 연산자로 입력받은 값이
'p' 일 경우 value1의 value2 제곱을 계산하고
'x' 일 경우 프로그램을 종료하며
'r' 일 경우 랜덤한 연산자를 선택하여
연산 결과를 출력하는 프로그램을 작성하세요
제곱을 계산할 때 cmath 헤더파일에 선언된 pow 함수를 사용하세요
랜덤을 계산할 때 stdlib 헤더파일에 선언된 rand 함수를 사용하세요
prc.hpp
#include <cstdio> #include <cmath> #include <cstdlib> #include <ctime> float getFloat(); char getChar(); |
prc.cpp
#include "prc.hpp" float getFloat(); // 사용자로부터 실수를 입력받는 함수 char getChar(); // 사용자로부터 문자를 입력받는 함수 int main() { float value1; float value2; char oper; int w; float result; bool valid = true; // default인 경우 오류나는 것 해결 방법 bool exit = false; value1 = getFloat(); value2 = getFloat(); oper = getChar(); // 함수 호출 switch (oper){ case '+': result = value1 + value2; break; case '-': result = value1 - value2; break; case '/': result = value1 / value2; break; case '*': result = value1 * value2; break; case '%': result = (int)value1 % (int)value2; // 나머지 연산은 int로 형변환 해야함 break; case 'p': // 제곱을 구하는 코드 pow() result = pow(value1, value2); break; case 'x': // 종료하는 코드 exit = true; break; case 'r': // 랜덤 값을 구하는 코드를 넣자 srand(time(0)); // 실행할 때마다 다른 랜덤 값이 나옴 w = rand() % 6; // 0~5 /* rand라는 함수를 쓰면 정수형 형태의 임의의 랜덤수가 나오게 됨 이것을 범위를 지정해서 랜덤 값을 구하기 위해서는 % 연산을 활용하면 됨*/ if (w == 0){ result = value1 + value2; } else if (w == 1){ result = value1 - value2; } else if (w == 2){ result = value1 * value2; } else if (w == 3){ result = value1 / value2; } else if (w == 4){ result = (int)value1 / (int)value2; } else if (w == 5){ result = pow( value1, value2 ); } break; default: valid = false; break; } if (valid == true){ printf("결과는 %.3f 입니다.\n", result); // 쓸데없이 긴 코드 다 없앰 } else if (exit == true){ printf("프로그램을 종료합니다.\n"); } else{ printf("올바르지 않은 연산자 입니다.\n"); } return 0; } float getFloat() { float input; fseek(stdin, 0, SEEK_END); printf ("실수를 입력해주세요: "); scanf("%f", &input); return input; } char getChar() { char input; fseek(stdin, 0, SEEK_END); printf("문자를 입력해주세요: "); scanf("%c", &input); return input; } |
'C언어' 카테고리의 다른 글
심화 C 언어 4 (포인터 1 - 기초) (0) | 2021.07.31 |
---|---|
심화 C 언어 3 (문자열 - 문자의 '배열') (0) | 2021.07.30 |
c언어 6 (헤더파일 / 소스파일) (0) | 2021.07.26 |
c언어 5 (형변환 / 구조체) (0) | 2021.07.08 |
c언어 4 (배열 / 다차원 배열) (0) | 2021.07.08 |