printf("ho_tari\n");
C언어(2) 본문
2025.02.19
연산
2의 보수 : 현재 자리수에서 1큰수(1111+1 = 10000)에서 현재의 값을 뺀값
-37의 10의 보수 구하기
52 - 37의 연산을 수행하면 52 + (-37)과 같음
2자리의 수의 최고값 99에서 +1을 한 100에서 37을 뺀값 63
52 + 63 = 115 → 15
https://youtube.com/shorts/ui27izD0mp4?feature=share
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
// #define bool _Bool
// typedef _Bool bool;
/*
int main() {
char a;
int b;
b = 10;
a = (char)b;
printf("%d\n", a);
}
*/
/*
int main() {
float a;
int b;
a = 1.23;
b = (int)a;
printf("%d\n", b);
}
*/
/*
int main() {
printf("%d\n", sizeof(100));
printf("%d\n", sizeof(1.23));
char str[10] = {"abcdefghi"};
printf("%d\n", sizeof(str));
str[5] = 0;
printf("%d\n", strlen(str));
}
*/
/*
int main() {
int a = 10, b = 20;
int res;
res = (++a, ++b);
printf("a:%d, b:%d\n", a, b);
printf("res:%d\n", res);
return 0;
}*/
/*
int main() {
int a = 10, b = 20, res;
res = (a > b) ? a : b;
printf("큰 값 : %d\n", res);
return 0;
}*/
/*
int main() {
bool isState = false;
bool isState2 = true;
printf("isState variable = %d\n", isState);
printf("isState variable = %d\n", isState2);
printf("isState variable = %s\n", isState ? "true" : "false");
return 0;
}*/
/*
// & 특정 비트를 마스크 오프 (비트를 0으로 만듦)
// | 특정 비트를 마스크 온 (비트를 1로 만듦)
// ^ 특정 비트의 상태를 반전
int main() {
char a = 0xAB; // 0b10101011
// a &= 0b00001111;
// a |= 0b00001111;
// a ^= 0x01;
a = ~a;
// printf("%X\n", a & 0xF0); // 0xF0 = 0b11110000
printf("%X\n", a);
printf("%X\n", 0b1100 & 0b1001);
printf("%X\n", 0b1100 | 0b1001);
printf("%X\n", 0b1100 ^ 0b1001); // exclusive or (배타적 논리합)
}
*/
/*
int main(void) {
int a = 10, b = 5;
int res;
res = a / b * 2;
printf("res = %d\n", res);
res = ++a * 3;
printf("res = %d\n", res);
res = a > b && a != 5;
printf("res = %d\n", res);
res = a % 3 == 0;
printf("res = %d\n", res);
return 0;
}*/
/*
int main(void) {
int res;
res = sizeof(short) > sizeof(long) ? 1 : 0;
// res == 1 ? printf("long") : printf("short");
printf("%s", res == 1 ? "short" : "long");
return 0;
}
*/
/*
int main(void) {
int seats = 70;
int audience = 65;
double rate;
rate = (double)audience / seats * 100;
printf("입장률 : %.1f%%", rate);
return 0;
}*/
/*
int main(void) {
int hour, min, sec;
double time = 3.76;
hour = (int)time;
min = (int)(60 * (time - hour));
sec = (int)(60 * ((60 * (time - hour)) - min));
printf("3.76시간은 %d시간 %d분 %d초입니다.", hour, min, sec);
return 0;
}*/
/*
int main(void) {
int a = 20;
int b = 0;
if (a > 10)
b = a;
b++;
printf("a: %d, b: %d", a, b);
return 0;
}*/
/*
int main(void) {
int a = 0, b = 0;
if (a > 0)
{
b = 1;
}
else if (a == 0)
{
b = 2;
}
else
{
b = 3;
}
printf("b : %d\n", b);
return 0;
}*/
/*
int main(void) {
int chest = 95;
char size;
if (chest <= 90)
{
size = 'S';
}
else if (90 < chest <= 100)
{
size = 'M';
}
else
{
size = 'L';
}
printf("size = %c", size);
return 0;
}*/
/*
int main(void) {
int a;
printf("점수를 입력하세요.\n");
scanf("%d", &a);
if (a >= 80)
{
printf("A+");
}
else if (60 <= a < 80)
{
printf("A");
}
else if (40 <= a < 60)
{
printf("B+");
}
else
{
printf("B");
}
return 0;
}*/
/*
int main(void) {
double height = 179.5;
double weight = 75.0;
if ((height >= 187.5) && (weight < 80))
{
printf("ok\n");
}
else
{
printf("cancel\n");
}
return 0;
}*/
/*
int main(void) {
int rank = 2, m = 0;
switch (rank)
{
case 1:
m += 100;
case 2:
m += 200;
case 3:
m += 100;
default:
m += 10;
break;
}
printf("m: %d\n", m);
return 0;
}*/
/*
int main(void) {
int rank = 2, m = 0;
switch (rank)
{
case 1:
m = 300;
break;
case 2:
m = 200;
break;
case 3:
m = 100;
break;
default:
m = 10;
break;
}
printf("m: %d\n", m);
return 0;
}*/
/*
int main(void) {
int n;
printf("정수 입력: ");
scanf("%d", &n);
switch (n % 3)
{
case 0:
printf("거짓");
break;
default:
printf("참");
break;
}
return 0;
}*/
/*
int main(void) {
int age = 25, chest = 95;
char size;
if (age < 20)
{
if (chest >= 95)
{
size = 'L';
}
else if (chest >= 85)
{
size = 'M';
}
else
{
size = 'S';
}
}
else
{
if (chest >= 100)
{
size = 'L';
}
else if (chest >= 90)
{
size = 'M';
}
else
{
size = 'S';
}
}
printf("사이즈는 %c입니다.\n", size);
return 0;
}*/
/*
int main(void) {
int number = 584;
char a, b, c;
a = number / 100 + 0x30;
b = number % 100 / 10 + 48;
c = number % 100 % 10 + '0'; // 0x30 = 48 = '0'
printf("%c%c%c", a, b, c);
return 0;
}
*/
/*
int main(void) {
int a, b, sum;
char c;
printf("사칙연산 입력(정수) : ");
scanf("%d%c%d", &a, &c, &b);
if (c == '+')
{
sum = a + b;
}
else if (c == '-')
{
sum = a - b;
}
else if (c == '/')
{
sum = a / b;
}
else if (c == '*')
{
sum = a * b;
}
printf("%d%c%d=%d", a, c, b, sum);
return 0;
}*/
/*
int main(void) {
int n1, n2, sum;
char op;
printf("사칙연산 입력(정수): ");
scanf("%d%c%d", &n1, &op, &n2);
switch (op)
{
case '+':
sum = n1 + n2;
break;
case '-':
sum = n1 - n2;
break;
case '/':
sum = n1 / n2;
break;
case '*':
sum = n1 * n2;
break;
}
printf("%d%c%d=%d", n1, op, n2, sum);
return 0;
}*/
/*
// 삼항연산자
int main(void) {
int n1, n2, sum;
char op;
printf("사칙연산 입력(정수): ");
scanf("%d%c%d", &n1, &op, &n2);
sum = (op == '+') ? (n1 + n2) :
(op == '-') ? (n1 - n2) :
(op == '/') ? (n1 / n2) :
(op == '*') ? (n1 * n2) : 0;
printf("%d%c%d=%d", n1, op, n2, sum);
return 0;
}
*/
/*
int main(void) {
int a = 1;
while (a < 10)
{
a = a * 2;
}
printf("a : %d\n", a);
return 0;
}*/
/*
int main(void) {
int a = 1;
do
{
a = a * 2;
} while (a < 10);
printf("a : %d\n", a);
return 0;
}*/
/*
int c; // global variable 전역 변수
int main(void) {
int a = 1; // local variable 지역 변수
while (a < 10) {
static int b = 0;
a = a * 2;
b = b + 1;
printf("b = %d\n", b);
}
printf("a = %d\n", a);
return 0;
}
*/
/*
int main(void) {
int a = 1;
while (1) {
a = a * 2;
if (a > 10) break;
}
printf("a = %d\n", a);
return 0;
}*/
/*
int main(void) {
int a = 1;
int i;
for (i = 0; i < 3; i++)
{
a = a * 2;
}
printf("a : %d\n", a);
return 0;
}*/
/*
int main(void) {
int a = 1;
int i = 0;
for (; i < 3; i++)
{
a = a * 2;
}
printf("a = %d\n", a);
return 0;
}*/
/*
int main(void) {
int a = 1;
int i = 0;
for (; i < 3;)
{
a = a * 2;
i++;
}
printf("a = %d\n", a);
return 0;
}*/
/*
int main(void) {
int a = 1;
int i = 0;
for (; ;)
{
a = a * 2;
i++;
if (i == 3) break;
}
printf("a = %d\n", a);
return 0;
}*/
/*
int main(void) {
int a = 1;
for (int i = 0; i < 10 && a < 9; i++)
{
a = a * 2;
}
printf("a = %d\n", a);
return 0;
}*/
/*
int main(void) {
int password;
printf("암호를 입력하세요.\n");
scanf("%d", &password);
while (password != 1234)
{
printf("암호를 다시 입력하세요.\n");
scanf("%d", &password);
}
printf("암호가 일치합니다.\n");
return 0;
}*/
/*
int main(void) {
int password;
do
{
printf("암호를 입력하세요.\n");
scanf("%d", &password);
} while (password != 1234);
printf("암호가 일치합니다.\n");
return 0;
}*/
/*
int main(void) {
int i;
for (i = 0; i < 10; i++)
{
printf("$");
}
return 0;
}*/
/*
int main(void) {
int i, j;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 5; j++)
{
printf("*");
}
printf("\n");
}
return 0;
}*/
/*
int main(void) {
for (int i = 2; i < 10; i++)
{
printf("----------%d단----------\n", i);
for (int j = 1; j < 10; j++)
printf("%d * %d = %d\n", i, j, i * j);
}
return 0;
}*/
/*
int main(void) {
for (int i = 2; i < 10; i++)
{
printf("----------%d단----------\n", i);
for (int j = 1; j < 10; j++)
{
if (j == 5) continue;
printf("%d * %d = %d\n", i, j, i * j);
}
}
return 0;
}*/
/*
int main(void) {
int i, j;
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
if ((i == j) || (i + j == 4))
{
printf("*");
}
else
{
printf(" ");
}
}
printf("\n");
}
return 0;
}*/
#define ESC 0x1b // \033
/*
int main(void) {
int max_x = 10, max_y = 10;
int cur_x = 5, cur_y = 5;
while (1) {
printf("\033[2J\033[H"); // 화면 지우기
for (int y = 0; y < max_y; y++)
{
for (int x = 0; x < max_x; x++)
{
if (cur_x == x && cur_y == y)
{
putchar('*');
}
else
{
putchar('.');
}
}
putchar('\n');
}
// 키보드 입력
char ch = getch();
if (ch == '1') return 0;
if (ch == 'a')
{
cur_x--;
if (cur_x < 0)
{
cur_x = 0;
}
}
if (ch == 'd')
{
cur_x++;
if (cur_x > max_x - 1)
{
cur_x = max_x - 1;
}
}
if (ch == 'w')
{
cur_y--;
if (cur_y < 0)
{
cur_y = 0;
}
}
if (ch == 's')
{
cur_y++;
if (cur_y > max_y - 1)
{
cur_y = max_y - 1;
}
}
}
return 0;
}
*/
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void) {
int column = 0;
int inputValue; // 입력 받은 수
int stepValue; // 단계별 검증할 수
int incValue; // 프라임넘버를 확인하기 위한 나눔수
printf("2 이상의 정수를 입력하세요 : ");
scanf("%d", &inputValue);
for (stepValue = 2; stepValue <= inputValue; stepValue++)
{
for (incValue = 2; incValue < stepValue; incValue++)
{
if (stepValue % incValue == 0)
{
break;
}
}
if (incValue == stepValue)
{
printf("%5d", stepValue);
column++;
if (column == 5)
{
column = 0;
printf("\n");
}
}
}
}