본문 바로가기

c언어54

[c언어] 하트 출력하기 [하트 출력] [출력] ****** ****** ************ ************ **************** **************** ****************** ****************** ************************************** ************************************ ******************************** ************************** ******************** ************ ****** ** [c 코드]#include int main() { printf(" ****** ******\n"); printf(" ************ ************\n".. 2020. 3. 29.
[c언어] 한글자씩 출력 (타자기) [한글자씩 출력] [출력][c 코드]#include#include#include#includeint main() { char *script = "Test \nThis is Test."; int length = strlen(script); for(int i=0; i 2020. 3. 29.
[c언어] 가위바위보 프로그램 제작하기 (rand 이용) [가위바위보] #time, srand, rand 이용 #최대한 간단하게 작성한 코드 #include#include#includeint main() { srand(time(NULL)); int com = rand() % 3 + 1; int user; printf("가위(1), 바위(2), 보(3)를 입력하세요 : "); scanf("%d", &user); if (com == user) printf("draw. \n"); else if (com > (user+1)%3) printf("user win. \n"); else printf("com win. \n"); return 0;} [출력결과] 가위(1), 바위(2), 보(3)를 입력하세요 : 1 com win.가위(1), 바위(2), 보(3)를 입력하세요 :.. 2020. 3. 26.
[C언어] scanf()함수에서 &(ampersand)를 쓰는 이유 [&(ampersand)에 대하여] c언어를 시작하면 printf에서는 &를 안썼는데, scanf에서는 &를 쓸때가 있고, 안쓸때가 있다.&의 역할은 무엇이며, &는 언제 쓰는 것일까. &(ampersand)의 역할- &(ampersand(앰퍼샌드))는 해당 변수의 주소를 가리키는 역할을 한다.- &를 이해할려면 주소에 대한 개념을 알아야 한다.주소 값000 32001 20 2019. 1. 21.
[c언어] memset 함수에 대하여 [memset] memset 함수- malloc()이나, calloc()에서 할당 받은 메모리를 특정 값으로 초기화 하는 함수.- 보통 어떤 작업을 하기 전에 NULL로 초기화 할 때 많이 사용된다.- [malloc, calloc함수에 대한 글]- calloc은 malloc과 memset(void *ptr, 0, size_t size)의 기능이 합쳐진것이다. (0으로 초기화) memset 함수 형태- void *memset(void *ptr, int value, size_t size);- ptr : 메모리의 크기를 변경할 포인터- value : 초기화 값- size : 초기화 크기 memset 함수 헤더- string.h에도 있고, memory.h에도 함수가 있다. (즉, 둘 중에 하나만 써도 되며, 둘.. 2018. 11. 24.
[c언어콘서트] 12장 3번 (라인개수 출력) [12장 3번] 텍스트 파일 안에 들어 있는 라인의 개수를 계산하는 프로그램을 작성해보자. [programming_3.txt] [풀이]#include int main() { FILE *fp; fp = fopen("programming_3.txt", "r"); char tmp; int cnt = 1; if (fp == NULL) { exit(0); } while (fscanf(fp, "%c", &tmp) != EOF) { printf("%c", tmp); if (tmp == '\n') cnt++; } printf("\n\n라인의 개수=%d\n", cnt); return 0; } 2018. 11. 16.
[c언어콘서트] 12장 2번 (정수 출력) [12장 2번] 정수들이 저장된 파일에서 모든 정수를 읽어서 정수의 개수, 합계, 평균을 출력하는 프로그램을 작성하라. [programming_2.txt] [풀이]#include int main() { FILE *fp; fp = fopen("programming_2.txt", "r"); int sum = 0; int cnt = 0; int num; double average; if (fp == NULL) { exit(0); } while (fscanf(fp, "%d", &num) != EOF) { sum += num; cnt++; } average = sum / cnt; printf("정수들의 개수 : %d\n", cnt); printf("정수들의 합계 : %d\n", sum); printf("정수들의 .. 2018. 11. 16.
[c언어콘서트] 12장 1번 (파일 저장) [12장 1번] 사용자로부터 직원에 대한 정보를 받아서 employee.txt 파일에 저장하는 프로그램을 작성해보자. [employee.txt] [풀이]#include int main() { FILE *fp; fp = fopen("programming_1.txt", "w"); char name[20]; int age, wage; if (fp == NULL) { exit(0); } printf("직원 이름 : "); scanf("%s", name); fprintf(fp, "직원 이름 : %s\n", name); printf("나이 : "); scanf("%d", &age); fprintf(fp, "나이 : %d\n", age); printf("월급 : "); scanf("%d", &wage); fprint.. 2018. 11. 16.
[c언어콘서트] 11장 6번 (가위,바위,보) [11장 6번] 열거형을 사용하여 사람과 컴퓨터 사이의 가위, 바위, 보 게임을 구현해보자. [풀이]#include enum COM {s, r, p}; int main() { enum COM com = 0; int user; printf("가위(0), 바위(1), 보(2)를 입력하세요 : "); scanf("%d", &user); if (com == user) printf("비겼습니다. \n"); else if (com > (user + 1) % 3) printf("컴퓨터가 졌습니다. \n"); else printf("컴퓨터가 이겼습니다. \n"); return 0; } 2018. 11. 16.
[c언어콘서트] 11장 5번 (복소수의 덧셈) [11장 5번] 두 개의 복소수를 더하는 프로그램을 작성해보자. a+bi와 c+di의 덧셈은 다음과 같다.(a+bi)+(c+di)=(a+b)+(c+d)i복소수는 구조체를 사용하여 표현해보자. [풀이]#include struct NUM { double integer; double complex_num; }; int main() { struct NUM num[2]; printf("첫번째 복소수를 입력하시오 (a, b) : "); scanf("%lf %lf", &num[0].integer, &num[0].complex_num); printf("두번째 복소수를 입력하시오 (a, b) : "); scanf("%lf %lf", &num[1].integer, &num[1].complex_num); printf("%0.. 2018. 11. 16.
[c언어콘서트] 11장 4번 (학생 입력) [11장 4번] 학생을 나타내는 구조체 student는 주민등록버호(정수), 이름(문자열), 전화번호(문자열), 로 구성된다. 구조체 안에서 공용체를 사용하여 주민등록번호 또는 학번 중에서 하나를 사용할 수 있도록 구조체를 정의해보자, [풀이]#include struct STUDENT { union number { int per_num; // 생년월일 int stu_num; // 학번 }; char name[20]; // 이름 char phone[20]; // 전화번호 }; int main() { struct STUDENT student[2] = { {0, "홍길동1", "010-0000-0000"}, {0, "홍길동2", "010-1111-1111"} }; student[0].stu_num = 2018.. 2018. 11. 16.
[c언어] ctype.h 함수 목록 [#include] #include 를 했을때 사용가능한 함수 목록이다.c 문자 분류로써 문자들에 관련된 함수들이 들어있다. #문자 검사 함수# int isalnum(int c) _ alphabet + number _ c가 알파벳 또는 숫자이면 0이 아닌 값을 반환 int isalpha(int c) _ alphabet _ c가 알파벳이면 0이 아닌 값을 반환 int iscntrl(int c) _ control _ c가 제어 문자이면 0이 아닌 값을 반환 int isdigit(int c) _ c가 숫자이면 0이 아닌값을 반환 int isgraph(int c) _ c가 그래픽 문자이면 0이 아닌 값을 반환 int islower(int c) _ lower _ c가 소문자이면 0이 아닌 값을 반환 int isp.. 2018. 10. 31.
[c언어콘서트] 11장 3번 (직원 찾기) [11장 3번] 직원을 나타내는 구조체 employee가 사번(정수), 이름(문자열), 전화번호(문자열), 나이(정수) 등으로 구성된다. 구조체의 배열을 선언하고 10명의 데이터로 초기화하라. 이중에서 나이가 20이상 30이하인 직원을 찾아서 출력하도록 하라 [풀이]#include #include #define MAX 10 struct employee { int num; char name[20]; char number[20]; int old; }; int main() { struct employee member[MAX]; char name[20]; char number[20]; for (int i = 0; i < MAX; i++) { scanf("%s %s %d", name, number, &member.. 2018. 10. 28.
[c언어콘서트] 11장 2번 (이메일 표현) [11장 2번] 구조체를 이용하여 이메일을 표현할 수 있는 구조체를 정의하고, 적당한 초깃값을 부여하고 출력하는 프로그램을 작성하라. 구조체의 멤버는 제목, 수신자, 발신자, 내용, 날짜, 우선순위 등으로 구성된다. [풀이]#include #include #define MAX 2 struct user { char title[20]; char receiver[20]; char caller[20]; char main[30]; char date[20]; int priority; }; int main() { struct user member[MAX]; char title[20]; char receiver[20]; char caller[20]; char main[30]; char date[20]; printf(".. 2018. 10. 28.
[c언어콘서트] 11장 1번 (시간차이 계산) [11장 1번] 구조체를 이용하여서 현재 시각을 표현한다. 사용자로부터 2개의 시각을 입력받아서 두 시각 사이의 차이를 계산하여 출력하는 프로그램을 작성한다. [풀이]#include struct time { int hour, min, sec; }; int main() { struct time now; struct time future; int hour, min, sec; printf("시작시간(시, 분, 초) : "); scanf("%d %d %d", &now.hour, &now.min, &now.sec); printf("종료시간(시, 분, 초) : "); scanf("%d %d %d", &future.hour, &future.min, &future.sec); hour = future.hour - now.. 2018. 10. 28.