CHAPTER 10 - 0083tony/Core-C-Programming GitHub Wiki
- 1๋ฒ ๋ฌธ์
๋น๋ฐ๋ฒํธ๋ *๋ก ์ถ๋ ฅํ๋ ๋ก๊ทธ์ธ ํ๋ก๊ทธ๋จ์ ๊ตฌ์กฐ์ฒด๋ฅผ ์ด์ฉํด ๋ง๋ค์ด๋ณด์
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
struct Login {
char ID[20];
char Password[20];
};
int main() {
struct Login a;
printf("ID? ");
scanf("%s", a.ID);
printf("Password? ");
scanf("%s", a.Password);
size_t n = strlen(a.Password);
printf("ID: %s\n", a.ID);
printf("Password: ");
for (size_t i = 0; i < n; i++) {
printf("*");
}
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
ID? Guest
Password? Idontknow
ID: Guest
Password: *********
- 2๋ฒ ๋ฌธ์
๊ตฌ์กฐ์ฒด๋ฅผ ์ฌ์ฉํด ์์ด๋, ํจ์ค์๋ ๋ชจ๋ ์๋ฌธ์๋ก ์ ์ฅํ๊ณ , ์ถ๋ ฅํ๋ ํจ์ ํ๋ก๊ทธ๋จ
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
struct Login {
char ID[20];
char Password[20];
};
void make_lower(char* ID, char* Password) {
_strlwr(ID); // error C4996๋ก ์ธํด strlwr ํจ์ ์์ '_'์ ์ถ๊ฐ
_strlwr(Password);
}
void print_login(char* ID, int n) {
printf("ID: %s\n", ID);
printf("Password: ");
for (size_t i = 0; i < n; i++) {
printf("*");
}
}
int main(void) {
struct Login a;
printf("ID? ");
scanf("%s", a.ID);
printf("Password? ");
scanf("%s", a.Password);
size_t n = strlen(a.Password);
make_lower(a.ID, a.Password);
print_login(a.ID, n);
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
ID? Guest
Password? Idontknow
ID: guest
Password: *********
- 3๋ฒ ๋ฌธ์
๊ตฌ์กฐ์ฒด ๋ฐฐ์ด์ ์ด์ฉํด ๋ฑ๋กํด๋ 5๊ฐ์ ์์ด๋, ๋น๋ฐ๋ฒํธ์ ๋น๊ตํด ๊ฐ์ผ๋ฉด "๋ก๊ทธ์ธ ์ฑ๊ณต"์ด๋ผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
typedef struct Login {
char ID[20];
char Password[20];
} Login;
int main() {
char ID[20];
char Password[20];
Login arr[5] = {
{"C#","C++"},
{"Node.js","MySQL"},
{"html","css"},
{"JQuery","React.js"},
{"Git","Github"}
};
for (;;) {
printf("ID? ");
scanf("%s", ID);
if (*ID == '.')break;
getchar();
printf("Password? ");
scanf("%s", Password);
for (size_t i = 0; i < 5; i++) {
if (*ID == *arr[i].ID) {
if (*Password == *arr[i].Password) {
printf("๋ก๊ทธ์ธ ์ฑ๊ณต\n");
}
}
}
}
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
ID? Git
Password? Github
๋ก๊ทธ์ธ ์ฑ๊ณต
ID? .
- 4๋ฒ ๋ฌธ์
๊ตฌ์กฐ์ฒด๋ฅผ ์ด์ฉํด ์ ๋ ฅ๋ฐ์ ๋ ์ง๋ฅผ ์ถ๋ ฅํ๋ ํจ์ ํ๋ก๊ทธ๋จ
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
struct AA {
int year = 0;
int month = 0;
int date = 0;
};
void print_date(int year, int month, int date) {
printf("%d / %d / %d\n", year, month, date);
}
int main(void) {
struct AA a;
printf("์ฐ? ");
scanf("%d", &a.year);
printf("์? ");
scanf("%d", &a.month);
printf("์ผ? ");
scanf("%d", &a.date);
print_date(a.year, a.month, a.date);
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
์ฐ? 2019
์? 12
์ผ? 25
2019 / 12 / 25
- 5๋ฒ ๋ฌธ์
'localtime' ํจ์๋ฅผ ์ฌ์ฉํด ์ค๋์ ๋ ์ง๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <time.h>// time()ํจ์
struct DATE {
int year;
int month;
int date;
};
struct DATE set_as_today(void) {
time_t t = time(NULL);
struct tm* today = localtime(&t);
struct DATE ti;
ti.year = today->tm_year + 1900;
ti.month = today->tm_mon + 1;
ti.date = today->tm_mday;
return ti;
}
void printf_date(struct DATE ti) {
printf("์ค๋์ ๋ ์ง๋ %d / %d / %d ์
๋๋ค.\n", ti.year, ti.month, ti.date);
}
int main(void) {
struct DATE ti;
ti = set_as_today();
printf_date(ti);
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
์ค๋์ ๋ ์ง๋ 2019 / 10 / 30 ์
๋๋ค.
- 6๋ฒ ๋ฌธ์
๊ตฌ์กฐ์ฒด 2๊ฐ๋ฅผ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ๋ฐ์ ์ ๋ ฅ๋ ๋ ์ง๊ฐ ๊ฐ์์ง ๋น๊ตํ๋ ํจ์ ํ๋ก๊ทธ๋จ
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
struct DATE {
int year;
int month;
int date;
};
void is_same_date(struct DATE hld, struct DATE input) {
if ((hld.year == input.year) && (hld.month == input.month) && (hld.date == input.date)) {
printf("%d/%d/%d์ ๊ณตํด์ผ ์
๋๋ค.\n", input.year, input.month, input.date);
}
else printf("%d/%d/%d์ ๊ณตํด์ผ์ด ์๋๋๋ค.\n", input.year, input.month, input.date);
}
int main(void) {
struct DATE hld = { 2019,1,1 };
struct DATE input;
for (;;) {
printf("๋ ์ง(์ฐ ์ ์ผ)? ");
scanf("%d %d %d", &input.year, &input.month, &input.date);
if ((input.year == 0) && (input.month == 0) && (input.date == 0)) {
break;
}
is_same_date(hld, input);
}
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
๋ ์ง(์ฐ ์ ์ผ)? 2019 1 1
2019/1/1์ ๊ณตํด์ผ ์
๋๋ค.
๋ ์ง(์ฐ ์ ์ผ)? 2019 1 2
2019/1/2์ ๊ณตํด์ผ์ด ์๋๋๋ค.
๋ ์ง(์ฐ ์ ์ผ)? 0 0 0
- 7๋ฒ ๋ฌธ์
'localtime' ํจ์๋ฅผ ์ด์ฉํด ์ค๋ ๋ ์ง๋ฅผ ๊ตฌํ๊ณ "Today is Jan 1 2019" ํ์์ผ๋ก ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <time.h>
struct DATE {
int year;
int month;
int date;
};
struct DATE set_as_today(void) {
time_t t = time(NULL);
struct tm* today = localtime(&t);
struct DATE ti;
ti.year = today->tm_year + 1900;
ti.month = today->tm_mon + 1;
ti.date = today->tm_mday;
return ti;
}
void printf_date_eng(struct DATE ti) {
char month[12][5]{
"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec"
};
for (size_t i = 0; i < 12; i++) {
if (ti.month == i + 1) {
printf("Today is %s %d %d\n", month[i], ti.date, ti.year);
}
}
}
int main(void) {
struct DATE ti;
ti = set_as_today();
printf_date_eng(ti);
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
Today is Oct 30 2019
- 8๋ฒ ๋ฌธ์
๊ฐ ์ ํ์ ์ด๋ฆ, ๊ฐ๊ฒฉ, ์ฌ๊ณ ๋ฅผ ์ ์ฅํ๋ ๊ตฌ์กฐ์ฒด๋ฅผ ์ ์ํ๊ณ ๊ตฌ์กฐ์ฒด๋ฅผ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ๋ฐ์ ์ถ๋ ฅํ๋ ํจ์ ํ๋ก๊ทธ๋จ
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
struct PRODUCT {
char name[20];
int price;
int stock;
};
void printf_product(struct PRODUCT a) {
printf("[ %s %d์ ์ฌ๊ณ :%d ]", a.name, a.price, a.stock);
}
int main(void) {
struct PRODUCT a;
printf("์ ํ๋ช
? ");
scanf("%s", a.name);
printf("๊ฐ๊ฒฉ? ");
scanf("%d", &a.price);
printf("์ฌ๊ณ ? ");
scanf("%d", &a.stock);
printf_product(a);
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
์ ํ๋ช
? ์๋ฉ๋ฆฌ์นด๋
ธ
๊ฐ๊ฒฉ? 4000
์ฌ๊ณ ? 10
[ ์๋ฉ๋ฆฌ์นด๋
ธ 4000์ ์ฌ๊ณ :10 ]
- 9๋ฒ ๋ฌธ์
๊ตฌ์กฐ์ฒด๋ฅผ ๋งค๊ฐ๋ณ์๋ก ์ ๋ฌ๋ฐ์ ์ฃผ๋ฌธ์ ์ฒ๋ฆฌํ๋ ์ฌ๊ณ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ ํจ์ ํ๋ก๊ทธ๋จ
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
struct PRODUCT {
char name[20];
int price;
int stock;
};
int order(struct PRODUCT a, int n) {
int price = a.price * n;
int stock = a.stock - n;
if (stock <= 0) {
printf("์ฌ๊ณ ๊ฐ ๋ถ์กฑํฉ๋๋ค.\n");
return 0;
}
else {
printf("๊ฒฐ์ ๊ธ์ก: %d ์ฌ๊ณ : %d\n", price, stock);
}
return stock;
}
int main(void) {
struct PRODUCT a;
int n;
printf("์ ํ๋ช
? ");
scanf("%s", a.name);
printf("๊ฐ๊ฒฉ? ");
scanf("%d", &a.price);
printf("์ฌ๊ณ ? ");
scanf("%d", &a.stock);
for (;;) {
star:
printf("์ฃผ๋ฌธ ์๋? ");
scanf("%d", &n);
if (n == 0) {
break;
}
if (order(a, n) == 0) {
goto star;
}
a.stock = a.stock - n;
}
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
์ ํ๋ช
? ์๋ฉ๋ฆฌ์นด๋
ธ
๊ฐ๊ฒฉ? 4000
์ฌ๊ณ ? 10
์ฃผ๋ฌธ ์๋? 3
๊ฒฐ์ ๊ธ์ก: 12000 ์ฌ๊ณ : 7
์ฃผ๋ฌธ ์๋? 20
์ฌ๊ณ ๊ฐ ๋ถ์กฑํฉ๋๋ค.
์ฃผ๋ฌธ ์๋? 0
- 10๋ฒ ๋ฌธ์
๊ตฌ์กฐ์ฒด ๋ฐฐ์ด์ ์ด์ฉํด 5๊ฐ์ง ์ ๋ณด๋ฅผ ์ ๋ ฅ๋ฐ๊ณ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
struct PRODUCT {
char name[50] = "";
int price;
int stock;
};
int main(void) {
struct PRODUCT a[5];
int n = 0;
for (;;) {
printf("์ ํ๋ช
? ");
scanf("%[^\n]s", a[n].name);
if (*a[n].name == '.') {
break;
}
printf("๊ฐ๊ฒฉ ์ฌ๊ณ ? ");
scanf("%d %d", &a[n].price, &a[n].stock);
getchar(); // ๋ฒํผ๊ฐ์ ๋น์ฐ์ง ์์ผ๋ฉด scanf ๋ฌด์
n++;
if (n == 5) {
break;
}
}
for (int i = 0; i < n; i++) {
printf("[ %s %d์ ์ฌ๊ณ :%d ]\n", a[i].name, a[i].price, a[i].stock);
}
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
์ ํ๋ช
? ์๋ฉ๋ฆฌ์นด๋
ธ
๊ฐ๊ฒฉ ์ฌ๊ณ ? 4000 10
์ ํ๋ช
? ํ๋ซํ์ดํธ
๊ฐ๊ฒฉ ์ฌ๊ณ ? 5000 10
์ ํ๋ช
? .
[ ์๋ฉ๋ฆฌ์นด๋
ธ 4000์ ์ฌ๊ณ :10 ]
[ ํ๋ซํ์ดํธ 5000์ ์ฌ๊ณ :10 ]
- 11๋ฒ ๋ฌธ์
ํฌ๊ธฐ๊ฐ 5์ธ ๊ตฌ์กฐ์ฒด ๋ฐฐ์ด์ ์ฌ์ฉํด ์ฌ๊ณ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ ์ฃผ๋ฌธ ์ฒ๋ฆฌํ๋ ํ๋ก๊ทธ๋จ(๋ณ์ ์ด๊ธฐํ๋ ์์์ ๊ฐ)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
struct PRODUCT {
char name[50] = "";
int price;
int stock;
int amount;
};
int main(void) {
struct PRODUCT a[5] = {
{"์๋ฉ๋ฆฌ์นด๋
ธ",4000,10},{"์นดํ๋ผ๋ผ ",4500,10},
{"ํ๋ผํธ์น๋
ธ",5000,10},{"ํ๋ซํ์ดํธ",5000,10},
{"์น์ฆ์ผ์ดํฌ",9900,10}
};
struct PRODUCT input;
int stock[5] = { 10,10,10,10,10 };
for (;;) {
start:
printf("์ ํ๋ช
? ");
scanf("%[^\n]s", input.name);
if (*input.name == '.') break;
printf("์ฃผ๋ฌธํ ์๋? ");
scanf("%d", &input.amount);
getchar(); // ๋ฒํผ๊ฐ์ ๋น์ฐ์ง ์์ผ๋ฉด scanf ๋ฌด์
for (int i = 0; i < 5; i++) {
if (*a[i].name == *input.name) {
if (a[i].stock >= input.amount) {
a[i].stock = a[i].stock - input.amount;
printf("๊ฒฐ์ ๊ธ์ก: %d %s ์ฌ๊ณ : %d\n", input.amount * a[i].price, a[i].name, a[i].stock);
goto start;
}
}
}
printf("์ ํ๋ช
์ด ์๋ชป๋์์ต๋๋ค.\n");
}
for (int i = 0; i < 5; i++) {
printf("[ %s %d์ ์ฌ๊ณ :%d ]\n", a[i].name, a[i].price, a[i].stock);
}
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
์ ํ๋ช
? ์๋ฉ๋ฆฌ์นด๋
ธ
์ฃผ๋ฌธํ ์๋? 5
๊ฒฐ์ ๊ธ์ก: 20000 ์๋ฉ๋ฆฌ์นด๋
ธ ์ฌ๊ณ : 5
์ ํ๋ช
? ์นดํ๋ผ๋ผ
์ฃผ๋ฌธํ ์๋? 3
๊ฒฐ์ ๊ธ์ก: 13500 ์นดํ๋ผ๋ผ ์ฌ๊ณ : 7
์ ํ๋ช
? .
[ ์๋ฉ๋ฆฌ์นด๋
ธ 4000์ ์ฌ๊ณ :5 ]
[ ์นดํ๋ผ๋ผ 4500์ ์ฌ๊ณ :7 ]
[ ํ๋ผํธ์น๋
ธ 5000์ ์ฌ๊ณ :10 ]
[ ํ๋ซํ์ดํธ 5000์ ์ฌ๊ณ :10 ]
[ ์น์ฆ์ผ์ดํฌ 9900์ ์ฌ๊ณ :10 ]
- 12๋ฒ ๋ฌธ์
๊ณต์ฉ์ฒด๋ฅผ ์ฌ์ฉํด 2๋ฐ์ดํธ์ ๋ฐ์ดํฐ 2๊ฐ๋ฅผ 4๋ฐ์ดํธ ๋ฐ์ดํฐ๋ก ๋ง๋๋ ํ๋ก๊ทธ๋จ
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
union mydata {
short low;
short high;
int dword = 0;
};
int make_dword(short low, short high) {
union mydata a;
a.dword = high << 16;
a.dword = a.dword + low;
return a.dword;
}
int main(void) {
short low;
short high;
printf("low word? ");
scanf("%hi", &low);
printf("high word? ");
scanf("%hi", &high);
printf("dword data: %x\n", make_dword(low, high));
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
low word? 0x1234
high word? 0xabcd
dword data: abcd1234
- 13๋ฒ ๋ฌธ์
๊ตฌ์กฐ์ฒด๋ฅผ ์ฌ์ฉํด ์ง์ฌ๊ฐํ ์ขํ๋จ์ , ์ฐ์๋จ์ ์ ์ขํ๋ฅผ ์ ๋ ฅ๋ฐ๊ณ ์ถ๋ ฅํ๋ ํจ์ ํ๋ก๊ทธ๋จ
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
struct POINT {
int x1;
int x2;
int y1;
int y2;
};
void print_rect(struct POINT RECT) {
printf("[RECT ์ขํ๋จ์ : (%d,%d) ์ฐ์๋จ์ : (%d,%d)]\n", RECT.x1, RECT.y1, RECT.x2, RECT.y2);
}
int main(void) {
struct POINT RECT;
printf("์ง์ฌ๊ฐํ์ ์ขํ๋จ์ (x,y)? ");
scanf("%d %d", &RECT.x1, &RECT.y1);
printf("์ง์ฌ๊ฐํ์ ์ฐ์๋จ์ (x,y)? ");
scanf("%d %d", &RECT.x2, &RECT.y2);
print_rect(RECT);
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
์ง์ฌ๊ฐํ์ ์ขํ๋จ์ (x,y)? 10 20
์ง์ฌ๊ฐํ์ ์ฐ์๋จ์ (x,y)? 100 200
[RECT ์ขํ๋จ์ : (10,20) ์ฐ์๋จ์ : (100,200)]
- 14๋ฒ ๋ฌธ์
rand ํจ์๋ฅผ ์ฌ์ฉํด 0~99์ ์์์ ์ขํ๋ฅผ ์์ฑํ๊ณ , ์ง์ฌ๊ฐํ ์ขํ๋จ์ ๋ณด๋ค ์ฐ์๋จ์ ์ด ํฌ๋๋ก ์ ๊ทํํ ํ ์ง์ฌ๊ฐํ์ ์ค์ฌ์ ์ ์ขํ๋ฅผ ์ถ๋ ฅํ๋ ํจ์ ํ๋ก๊ทธ๋จ
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
struct POINT {
int x1;
int x2;
int y1;
int y2;
};
void normalize_rect(int* arr, struct POINT* RECT, int a) {
int temp;
for (int i = 0; i < 4; i++) {
for (int k = 0; k < 3; k++) {
if (arr[k] > arr[k + 1]) {
temp = arr[k];
arr[k] = arr[k + 1];
arr[k + 1] = temp;
}
}
}
RECT[a].x1 = arr[0];
RECT[a].y1 = arr[1];
RECT[a].x2 = arr[2];
RECT[a].y2 = arr[3];
}
void center_rect(struct POINT* RECT, int a) {
int ct1, ct2;
ct1 = (RECT[a].x1 + RECT[a].x2) / 2;
ct2 = (RECT[a].y1 + RECT[a].y2) / 2;
printf("[ RECT์ขํ๋จ์ :(%d,%d) ์ฐ์๋จ์ :(%d,%d) ] ์ค์ฌ์ :(%d, %d)\n", RECT[a].x1, RECT[a].y1, RECT[a].x2, RECT[a].y2, ct1, ct2);
}
int main(void) {
srand(time(NULL));
struct POINT RECT[3];
int arr[5];
for (int a = 0; a < 3; a++) {
for (int i = 0; i < 4; i++) {
arr[i] = rand() % 100;
}
normalize_rect(arr, RECT, a);
center_rect(RECT, a);
}
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
[ RECT์ขํ๋จ์ :(11,23) ์ฐ์๋จ์ :(33,97) ] ์ค์ฌ์ :(22, 60)
[ RECT์ขํ๋จ์ :(26,58) ์ฐ์๋จ์ :(71,98) ] ์ค์ฌ์ :(48, 78)
[ RECT์ขํ๋จ์ :(30,46) ์ฐ์๋จ์ :(61,66) ] ์ค์ฌ์ :(45, 56)
- 15๋ฒ ๋ฌธ์
10๊ฐ์ ์ ์ ์ขํ๋ฅผ ๋ํ๋ด๋ POINT ๊ตฌ์กฐ์ฒด ๋ฐฐ์ด์ ์ฌ์ฉํด x์ขํ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ์ฌ ์ถ๋ ฅํ๋ ํจ์ ํ๋ก๊ทธ๋จ
#define _CRT_SECURE_NO_WARRINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
struct POINT {
int x;
int y;
};
void swap_point(struct POINT* point) {
int temp;
struct POINT save[10] = {
{point[0].x,point[0].y},
{point[1].x,point[1].y},
{point[2].x,point[2].y},
{point[3].x,point[3].y},
{point[4].x,point[4].y},
{point[5].x,point[5].y},
{point[6].x,point[6].y},
{point[7].x,point[7].y},
{point[8].x,point[8].y},
{point[9].x,point[9].y},
};
for (int i = 0; i < 10; i++) {
for (int k = 0; k < 9; k++) {
if (point[k].x > point[k + 1].x) {
temp = point[k].x;
point[k].x = point[k + 1].x;
point[k + 1].x = temp;
}
}
}
for (int i = 0; i < 10; i++) {
for (int k = 0; k < 9; k++) {
if (point[i].x == save[k].x) {
point[i].y = save[k].y;
}
}
}
}
int main(void) {
struct POINT point[10];
srand(time(NULL));
printf("<<์ ๋ ฌ ์ >>\n");
for (int i = 0; i < 10; i++) {
point[i].x = rand() % 100;
point[i].y = rand() % 100;
printf("(%d,%d) ", point[i].x, point[i].y);
}
printf("\n<<์ ๋ ฌ ํ>>\n");
swap_point(point);
for (int i = 0; i < 10; i++) {
printf("(%d,%d) ", point[i].x, point[i].y);
}
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
<<์ ๋ ฌ ์ >>
(87,95) (39,14) (78,43) (90,38) (16,88) (50,46) (47,36) (84,53) (73,3) (20,81)
<<์ ๋ ฌ ํ>>
(16,88) (20,14) (39,14) (47,36) (50,46) (73,3) (78,43) (84,53) (87,95) (90,38)
- 16๋ฒ ๋ฌธ์
๊ณก๋ช , ๊ฐ์, ์ฅ๋ฅด, ์ฌ์ ์๊ฐ์ ์ ์ฅํ๋ ๊ตฌ์กฐ์ฒด์ ์ฅ๋ฅด์ ์ด๊ฑฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ ํ๋ก๊ทธ๋จ
#define _CRT_SECURE_NO_WARRINGS
#include <stdio.h>
#include <stdlib.h>
struct SONG {
char title[30];
char artist[30];
int genre;
int playtime;
};
enum Genre {
ROCK, HIP_HOP, OST, BALLAD, DANCE
};
int main(void) {
SONG A[8] = {
{"Rain","SNO",2,243},
{"TT","TWICE",4,213},
{"Awake","BTS",1,226},
{"๋ด๋น","์ฅ๋ฒ์ค",3,181},
{"BIB","AC/DC",0,255},
{"๋ด๋ ","BTS",1,278},
{"์๋๋ค","BTS",1,241},
{"NAPA","miwa",2,281}
};
enum Genre B[5] = { ROCK, HIP_HOP, OST, BALLAD, DANCE };
printf("์ ๋ชฉ \t์ํฐ์คํธ \t์ฅ๋ฅด \t์ฌ์์๊ฐ\n");
for (int i = 0; i < 5; i++) {
for (int k = 0; k < 8; k++) {
switch (B[i]) {
case ROCK:
if (ROCK == A[k].genre) {
printf("%s %s ROCK %d์ด\n", A[k].title, A[k].artist, A[k].playtime);
}
break;
case HIP_HOP:
if (HIP_HOP == A[k].genre) {
printf("%s %s HIP_HOP %d์ด\n", A[k].title, A[k].artist, A[k].playtime);
}
break;
case OST:
if (OST == A[k].genre) {
printf("%s %s OST %d์ด\n", A[k].title, A[k].artist, A[k].playtime);
}
break;
case BALLAD:
if (BALLAD == A[k].genre) {
printf("%s %s BALLAD %d์ด\n", A[k].title, A[k].artist, A[k].playtime);
}
break;
case DANCE:
if (DANCE == A[k].genre) {
printf("%s %s DANCE %d์ด\n", A[k].title, A[k].artist, A[k].playtime);
}
break;
}
}
}
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
์ ๋ชฉ ์ํฐ์คํธ ์ฅ๋ฅด ์ฌ์์๊ฐ
BIB AC/DC ROCK 255์ด
Awake BTS HIP_HOP 226์ด
๋ด๋ BTS HIP_HOP 278์ด
์๋๋ค BTS HIP_HOP 241์ด
Rain SNO OST 243์ด
NAPA miwa OST 281์ด
๋ด๋น ์ฅ๋ฒ์ค BALLAD 181์ด
TT TWICE DANCE 213์ด
- 17๋ฒ ๋ฌธ์
๊ณก๋ช , ๊ฐ์๋ช ์ ์ ๋ ฅ๋ฐ์ ํด๋น ๋ ธ๋๋ฅผ ์ ๋ถ ์ฐพ์ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct SONG {
char title[30];
char artist[30];
char genre[30];
int playtime;
};
int main(void) {
SONG A[8] = {
{"Rain","SNO","HIP_HOP",243},
{"TT","TWICE","DANCE",213},
{"Awake","BTS","HIP_HOP",226},
{"๋ด๋น","์ฅ๋ฒ์ค","BALLAD",181},
{"BIB","AC/DC","ROCK",255},
{"๋ด๋ ","BTS","HIP_HOP",278},
{"์๋๋ค","BTS","HIP_HOP",241},
{"NAPA","miwa","OST",281}
};
char kw[20];
for (;;) {
printf("ํค์๋(์ ๋ชฉ/์ํฐ์คํธ)? ");
scanf_s("%[^\n]s", kw, 20);
if (*kw == '.') {
break;
}
for (int i = 0; i < 8; i++) {
int N = _strcmpi(A[i].title, kw);
if (N == 0) {
printf("%s %s %s %d์ด\n", A[i].title, A[i].artist, A[i].genre, A[i].playtime);
}
int M = _strcmpi(A[i].artist, kw);
if (M == 0) {
printf("%s %s %s %d์ด\n", A[i].title, A[i].artist, A[i].genre, A[i].playtime);
}
}
getchar();
}
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
ํค์๋(์ ๋ชฉ/์ํฐ์คํธ)? Rain
Rain SNO HIP_HOP 243์ด
ํค์๋(์ ๋ชฉ/์ํฐ์คํธ)? BTS
Awake BTS HIP_HOP 226์ด
๋ด๋ BTS HIP_HOP 278์ด
์๋๋ค BTS HIP_HOP 241์ด
ํค์๋(์ ๋ชฉ/์ํฐ์คํธ)? .
- 18๋ฒ ๋ฌธ์
ํ๋ ์ด๋ฆฌ์คํธ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ค๊ณ ํ๋ค. ํ๋ ์ด๋ฆฌ์คํธ์ ์ถ๊ฐํ ๋ ธ๋๋ ๋ฒํธ๋ก ์ ํํ๊ณ ์ ์ฒด ๊ณก ์ฌ์ ์๊ฐ๊ณผ ๋ชฉ๋ก์ ํญ์ ์ถ๋ ฅํด์ผํ๋ค.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct SONG {
char title[30];
char artist[30];
char genre[30];
int playtime;
};
int main(void) {
SONG A[8] = {
{"Rain","SNO","HIP_HOP",243},
{"TT","TWICE","DANCE",213},
{"Awake","BTS","HIP_HOP",226},
{"๋ด๋น","์ฅ๋ฒ์ค","BALLAD",181},
{"BIB","AC/DC","ROCK",255},
{"๋ด๋ ","BTS","HIP_HOP",278},
{"์๋","BTS","HIP_HOP",241},
{"NAPA","Miwa","OST",281}
};
SONG* playlist[5] = { NULL };
int n = 0, m = 0;
printf(" ์ ๋ชฉ\t์ํฐ์คํธ\t์ฅ๋ฅด\t์ฌ์์๊ฐ\n");
for (int i = 0; i < 8; i++) {
printf("%d:%s\t%s\t\t%s\t%d์ด\n", i + 1, A[i].title, A[i].artist, A[i].genre, A[i].playtime);
}
for (;;) {
start:
int playtime = 0;
printf("\nํ๋ ์ด๋ฆฌ์คํธ์ ์ถ๊ฐํ ๊ณก ๋ฒํธ? ");
scanf_s("%d", &n);
if (n == 0) {
break;
}
if (n > 8) {
printf("์๋ชป๋ ๊ณก ๋ฒํธ์
๋๋ค.\n");
goto start;
}
playlist[m] = &A[n - 1];
m++;
printf("<< ํ๋ ์ด๋ฆฌ์คํธ >>\n");
for (int i = 0; i < m; i++) {
printf("%s\t%s\t\t%s\t%d์ด\n", (*playlist[i]).title, (*playlist[i]).artist, (*playlist[i]).genre, (*playlist[i]).playtime);
playtime = playtime + (*playlist[i]).playtime;
}
printf("์ด ์ฌ์์๊ฐ: %d์ด\n", playtime);
}
return 0;
}
[์คํ ๊ฒฐ๊ณผ]
์ ๋ชฉ ์ํฐ์คํธ ์ฅ๋ฅด ์ฌ์์๊ฐ
1:Rain SNO HIP_HOP 243์ด
2:TT TWICE DANCE 213์ด
3:Awake BTS HIP_HOP 226์ด
4:๋ด๋น ์ฅ๋ฒ์ค BALLAD 181์ด
5:BIB AC/DC ROCK 255์ด
6:๋ด๋ BTS HIP_HOP 278์ด
7:์๋ BTS HIP_HOP 241์ด
8:NAPA Miwa OST 281์ด
ํ๋ ์ด๋ฆฌ์คํธ์ ์ถ๊ฐํ ๊ณก ๋ฒํธ? 4
<< ํ๋ ์ด๋ฆฌ์คํธ >>
๋ด๋น ์ฅ๋ฒ์ค BALLAD 181์ด
์ด ์ฌ์์๊ฐ: 181์ด
ํ๋ ์ด๋ฆฌ์คํธ์ ์ถ๊ฐํ ๊ณก ๋ฒํธ? 8
<< ํ๋ ์ด๋ฆฌ์คํธ >>
๋ด๋น ์ฅ๋ฒ์ค BALLAD 181์ด
NAPA Miwa OST 281์ด
์ด ์ฌ์์๊ฐ: 462์ด
ํ๋ ์ด๋ฆฌ์คํธ์ ์ถ๊ฐํ ๊ณก ๋ฒํธ? 9
์๋ชป๋ ๊ณก ๋ฒํธ์
๋๋ค.
ํ๋ ์ด๋ฆฌ์คํธ์ ์ถ๊ฐํ ๊ณก ๋ฒํธ? 0