쉽게 풀어쓴 C언어 EXPRESS(개정 3판) - Chapter 16-3

9. #include <stdio.h> #include <stdlib.h> int main(int argc, char* argv[]) { FILE* fp1, * fp2, * fp3; char file1[100], file2[100], file3[100]; char buffer[100]; if (argc >= 4) { strcpy(file1, argv[1]); strcpy(file2, argv[2]); strcpy(file3, argv[3]); } else { printf("인수가 부족합니다.\n"); return 0; } printf("%s 파일+ %s파일을 %s파일로 복사합니다.\n", file1, file2, file3); if ((fp1 = fopen(file1, "r")) == NULL) { fprintf(stderr, "원본 파일 %s을 열 수 없습니다.\n", file1); exit(1); } if ((fp2 = fopen(file2, "r")) == NULL) { fprintf(stderr, "원본 파일 %s을 열 수 없습니다.\n", file2); exit(1); } if ((fp3 = fopen(file3, "w")) == NULL) { fprintf(stderr, "결과 파일 %s을 열 수 없습니다.\n", file3); exit(1); } fputs(buffer, fp3); fputs(buffer, fp3); fclose(fp1); fclose(fp2); fclose(fp3); return 0; } 10. #include <stdio.h> #include <ctype.h> int main(void) { FILE* fp =

쉽게 풀어쓴 C언어 EXPRESS(개정 3판) - Chapter 16-2

5. #include <stdio.h> int main(void) { FILE* fp = NULL; FILE* fpout = NULL; char buffer[1000] = { 0 } ; char name[1000] = { 0 } ; int korean, math, english; fp = fopen("sample.txt", "r"); if (fp == NULL) { printf("파일 열기 실패\n"); return 0; } fpout = fopen("sample1.txt", "w"); if (fpout == NULL) { printf("파일 열기 실패\n"); return 0; } while (fgets(buffer, 1000, fp) != NULL) { sscanf(buffer, "%s %d %d %d", name, &korean, &math, &english); fprintf(fpout, "%s", name); fprintf(fpout, "%10.2f\n", (korean + math + english) / 3.0); } fclose(fp); return 0; } 6. #include <stdio.h> #include <ctype.h> int main(void) { FILE* fp = NULL; int c, count = 0; char file1[100]; printf("파일 이름을 입력하시오: "); scanf("%s", file1); if ((fp = fopen(file1, "r")) == NULL) { fprintf(stderr, "원본

쉽게 풀어쓴 C언어 EXPRESS(개정 3판) - Chapter 16-1

1. #include <stdio.h> #include <stdlib.h> int main(void) { FILE* fp1, * fp2; char file1[100], file2[100]; printf("첫번쨰 파일 이름: "); scanf("%s", file1); printf("두번째 파일 이름: "); scanf("%s", file2); if ((fp1 = fopen(file1, "r")) == NULL) { fprintf(stderr, "원본 파일 %s을 열 수 없습니다.\n", file1); exit(1); } // 두번째 파일을 읽기 모드로 연다. if ((fp2 = fopen(file2, "r")) == NULL) { fprintf(stderr, "복사 파일 %s을 열 수 없습니다.\n", file2); exit(1); } // 첫 번째 파일과 두 번째 파일을 비교 while (1) { int c1 = fgetc(fp1); int c2 = fgetc(fp2); if (c1 == EOF || c2 == EOF) break; if (c1 != c2) { printf("두 파일은 서로 다릅니다.\n"); return 0; } } printf("두 파일은 서로 같습니다.\n"); fclose(fp1); fclose(fp2); return 0; } 2. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> int main(void) { FILE* fp1, * fp2; char file1[100],

쉽게 풀어쓴 C언어 EXPRESS(개정 3판) - Chapter 15-3

9. #include <stdio.h> #include <math.h> struct contact { char name[100]; char home_phone[100]; char cell_phone[100]; } ; int main(void) { struct contact list[5]; int i; char name[100]; for (i = 0; i < 5; i++) { printf("이름을 입력하시오:"); scanf("%s", list[i].name); printf("집전화번호를 입력하시오:"); scanf("%s", list[i].home_phone); printf("휴대폰번호를 입력하시오:"); scanf("%s", list[i].cell_phone); } printf("검색할 이름을 입력하시오:"); scanf("%s", name); for (i = 0; i < 5; i++) { if (strcmp(name, list[i].name) == 0) { printf("집전화번호: %s\n", list[i].home_phone); printf("휴대폰번호: %s\n", list[i].cell_phone); return 0; } } printf("검색이 실패하였슴\n"); return 0; } 10. #include <stdio.h> #include <math.h> struct card { int value; char suit; } ; int main(void) { struct card cards[52]; int i; for (i = 0; i < 13; i++) { ca

쉽게 풀어쓴 C언어 EXPRESS(개정 3판) - Chapter 15-2

5. #include <stdio.h> #include <math.h> struct vector { double x; double y; } ; struct vector vector_add(struct vector v1, struct vector v2) { struct vector r; r.x = v1.x + v2.x; r.y = v1.y + v2.y; return r; } void vector_print(struct vector v) { printf("(%f, %f)\n", v.x, v.y); } int main(void) { struct vector v1 = { 1.0, 2.0 } ; struct vector v2 = { 2.0, 3.0 } ; struct vector v3; v3 = vector_add(v1, v2); vector_print(v3); return 0; } 6. #include <stdio.h> #include <string.h> struct email { char title[100]; char receiver[50]; char sender[50]; char content[1000]; char date[100]; int priority; } ; int main(void) { struct email e; strcpy(e.title, "안부 메일"); strcpy(e.receiver, "chulsoo@hankuk.ac.kr"); strcpy(e.sender, "hsh@hankuk.ac.kr"); strcpy(e.content, "안녕하십니까? 별일 없으신지요?"); strcpy(e.date, "2010/9/1"); e.priority = 1; return 0; } 7. #incl

쉽게 풀어쓴 C언어 EXPRESS(개정 3판) - Chapter 15-1

1. double power(int x, int y) { double result = 1.0; int i; for (i = 0; i < y; i++) { printf("result=%f\n", result); result *= x; } return result; } (a) #ifdef DEBUG printf("result=%f\n", result); #endif (b) #if DEBUG==2 printf("result=%f\n", result); #endif (c) #if (DEBUG==2 && LEVEL==3) printf("result=%f\n", result); #endif (d) printf("%d: result=%f\n", __LINE__, result); (e) #if POWER_TYPE==0 int power(int x, int y) { int result = 1.0; # else double power(int x, int y) { double result = 1.0; #endif ... #if POWER_TYPE == 0 printf("result=%d\n", result); # else printf("result=%f\n", result); #endif ... (f) #if 0 printf("result=%f\n", result); # else 2. #include <stdio.h> #define MIN(x,y) (x)<(y)?(x):(y) #define GET_MIN(x,y,z) (MIN(x, y))<(z)?(MIN(x, y)):(z) int main(void) { int x, y, z, result; printf("3개의 정수를 입력하시오: "); scanf(&qu

쉽게 풀어쓴 C언어 EXPRESS(개정 3판) - Chapter 14-3

 8. #include <stdio.h> #define HEIGHT 10 #define WIDTH 10  void array_copy(int src[][WIDTH], int dst[][WIDTH]); void array_print(int a[][WIDTH]); int score[HEIGHT][WIDTH] = { { 100, 30, 67 } , { 89, 50, 12 } , { 19, 60, 90 } } ; int tmp[HEIGHT][WIDTH]; int main(void) { array_copy(score, tmp); array_print(tmp); return 0; } void array_print(int a[][WIDTH]) { int r, c; for (r = 0; r < HEIGHT; r++) { for (c = 0; c < WIDTH; c++) printf("%d ", a[r][c]); printf("\n"); } } void array_copy(int src[][WIDTH], int dst[][WIDTH]) { int* p = &src[0][0]; int* end = &src[HEIGHT - 1][WIDTH - 1]; int* q = &dst[0][0]; while (p <= end) { *q++ = *p++; } } 9. #include <stdio.h> #define HEIGHT 10 #define WIDTH 10 #define ALIVE 1  #define DEAD 0 void print_board(int board[HEIGHT][WIDTH]) { int h, w; for (h = 0; h < HEIGHT; h++) { for (w = 0; w < WIDTH; w++) { if (board[h][w] == ALIVE) {