분류 전체보기

#include int main() { int n; printf("정수를 입력하시오.:"); scanf("%d", &n); printf("약수 :"); for (int i = 1; i
do-while 문 : while문과 비슷하지만 반복 조건을 루프의 마지막에 검사함. 따라서 조건을 만족하지 않아도 무조건 1번은 실행됨. do { . . . } while ( 조건 ); [예제] #define _CRT_SECURE_NO_WARNINGS #include int main() { int guess; int answer = 59; int tries = 0; do { printf("정답을 추측해 보시오. : "); scanf("%d", &guess); tries++; if (guess > answer) printf("제시한 숫자가 점수보다 높습니다.\n"); else if (guess < answer) printf("제시한 숫자가 점수보다 낮습니다.\n"); } while (guess != an..
#include int main() { int x = 3; int y = -3; printf("x = %08X\n", x); printf("y = %08X\n", y); printf("x+y = %08X\n", x + y); return 0; } 위 코드에서 '%08X'는 16진수로 출력하라는 형식지정자이다.
1. 연결리스트에서 하나의 노드를 표현하기 위한 구조체를 선언한다. struct node { char *data; // 데이터 필드 struct node* next; // 링크 필드 }; typedef struct node NODE; NODE *head = NULL; // 첫 노드의 주소를 저장할 포인터 data next 하나의 노드는 데이터 필드와 링크 필드로 구성된다. 링크 필드는 다음 노드의 주소를 저장하며, 첫 노드의 주소는 head 라는 포인터 변수에 따로 저장해야 한다. 2. head 노드를 생성한다. head = (NODE*)malloc(sizeof(NODE)); head->data = "Tuesday"; head->next = NULL; // 반드시 마지막 노드임을 NULL로 표시 head..
// 전화번호부 v5.0 #include #include #include #define CAPACITY 100 #define BUFFER_LENGTH 100 typedef struct person { char* name; char* number; char* email; char* group; } Person; Person ** directory; // 구조체의 포인터 배열 -> 주소값만 저장되기 때문에 복잡한 과정 생략됨 int capacity, n; char delim[] = " "; void init() { directory = (Person**)malloc(CAPACITY * sizeof(Person*)); capacity = CAPACITY; n = 0; } int readline(FILE* fp..
#include #include #include #define CAPACITY 100 #define BUFFER_LENGTH 100 typedef struct person { char* name; char* number; char* email; char* group; } Person; Person directory[CAPACITY]; int n = 0; char delim[] = " "; int readline(FILE * fp, char str[], int lim) { int ch, i = 0; while ((ch = fgetc(fp)) != '\n' && ch != EOF) if (i < lim) str[i++] = ch; str[i] = '\0'; return i; } void add(char* n..
이 버전은 저장된 사람의 수가 배열의 용량을 초과하는 경우, 배열의 크기를 확장한다. 또 잘못된 명령이 있다면 적절하게 반응하도록 한다. 예시 $ read File name required. $ read directory.txt $ status David 0517778888 Henry 0243737788 John 01034523747 Sean 01012345678 $ add Anderson Number required. $ add Anderson 01032452587 Anderson was added successfully. $ save directory.txt $ exit #include #include #include #define INIT_CAPACITY 3 #define BUFFER_SIZE 50..
앞선 v1.0과는 동일하지만 전화번호부 v2.0은 파일로부터 데이터를 읽어오며 데이터를 알파벳 순으로 정렬한다. 데이터를 정렬된 상태로 유지하기 위해서는, 1) Sorting 알고리즘을 사용하거나 2) 새 데이터가 추가될 때마다 자릴 찾아 삽입 하는 방법이 있다. 이 버전은 알파벳 순서대로 정렬해야 하므로 2번으로 프로그래밍한다. #include #include #define MAX 100 #define BUFFER_SIZE 100 char* names[MAX]; char* numbers[MAX]; int n = 0; void add(); void find(); void status(); void remove(); void save(); void load(); int main() { char com[BU..
프로그램을 실행하면 화면에 프롬포트($)를 출력하고 사용자의 명령을 기다린다. 1. 새로운 사람을 추가한다. $ add John 01079799898 John was added successfully. 2. 이름으로 전화번호를 검사한다. $ find Henry No person named 'Henry' exists. $ find David 0517778888 3. 전화번호부에 등록된 모든 사람을 출력한다. $ status John 01076769898 David 0517778888 Total 2 persons. 4. 전화번호부에서 삭제한다. $ delete Jim No person named 'Jim' exists. $ delete John John was deleted successfully. 5. 프..
1. 리턴을 제외한 입력문장을 그대로 출력한 후 문장의 길이를 출력한다. (단, 공백문자도 포함해 카운트하며 문장의 앞뒤에 붙은 공백까지 그대로 출력한다.) #include #include #define BUFFER_SIZE 20 int readline(char str[], int lim) { int ch, i = 0; while ((ch = getchar()) != '\n') // 한 문자씩 입력 받음 if (i < lim - 1) str[i++] = ch; str[i] = '\0'; return i; } int main() { char buffer[BUFFER_SIZE]; while (1) { printf("$ "); //fgets(buffer, BUFFER_SIZE, stdin); // 라인 단위의..
소-은
'분류 전체보기' 카테고리의 글 목록 (10 Page)