본문 바로가기

프로그래밍 언어/C언어

누구나 쉽게 즐기는 c언어 콘서트 개정판 12장 programming

SMALL

누구나 쉽게 즐기는 c언어 콘서트 개정판 12장 프로그래밍

1번문제

#include<stdio.h>
 
int main(void) {
    char name[50];
    int age, pay;
    FILE* fp = NULL;
    
    printf("직원 이름: ");
    scanf("%s", name);
    printf("나이: ");
    scanf("%d"&age);
    printf("월급: ");
    scanf("%d"&pay);
 
    fp = fopen("employee.txt""w");
    fprintf(fp,"직원 이름 : %s\n나이 : %d\n월급 : %d", name, age, pay);
    fclose(fp);
    return 0;
}
cs

 

2번문제

#include<stdio.h>
 
int main(void) {
    int sum = 0, num, cnt = 0;
    FILE* fp = NULL;
    fp = fopen("jungsu.txt""r");
    if (fp == NULL) {
        printf("파일이 없습니다.");
        exit(0);
    }
    while(!feof(fp)){
        fscanf(fp, "%d"&num);
        sum += num;
        cnt++;
    }
    printf("정수들의 개수: %d\n",cnt);
    printf("정수들의 합계: %d\n", sum);
    printf("정수들의 평균: %.2f\n", (float)sum/cnt);
 
    return 0;
}
cs

 

3번문제

#include<stdio.h>
 
int main(void) {
    char str[1000];
    FILE* fp = fopen("message.txt""r");
    int cnt = 0, ret;
    if (fp == NULL) {
        printf("파일이 없습니다.");
        exit(0);
    }
    while (!feof(fp)) {
        ret = fgets(str, 1000, fp);
        cnt++;
        if (ret == 0)
            break;
        printf("%s", str);    
        
    }
    printf("\n\n라인의 개수 =%d", cnt);
    
 
    return 0;
}
cs

 

4번문제

#include<stdio.h>
 
int main(void) {
    FILE* fp1 , *fp2;
    float num;
    fp1 = fopen("mistake.txt""w");
    fp2 = fopen("mistake.bin""wb");
    for (int i = 0; i < 100; i++) {
        num = (rand() % 100/ 10.0;
        fprintf(fp1,"%.2f ",num);
        fprintf(fp2, "%.2f ", num);
    }
    
 
    return 0;
}
cs

 

5번문제

#include<stdio.h>
 
int main(void) {
    FILE* fp1, * fp2;
    char file1[100], file2[100];
    printf("첫번째 파일 이름: ");
    scanf("%s", file1);
    printf("두번째 파일 이름: ");
    scanf("%s", file2);
    fp1 = fopen(file1, "r");
    fp2 = fopen(file2, "r");
 
    if (fp1 == NULL || fp2 == NULL) {
        printf("파일이 없습니다");
        return 0;
    }
 
    while (!feof(fp1)) {
        if (fgetc(fp1) != fgetc(fp2)) {
            printf("두 파일은 서로 다릅니다.");
            exit(0);
        }
;
    }
    printf("두 파일은 서로 같습니다.");
    return 0;
}
cs

 

6번문제

#include<stdio.h>
 
int main(void) {
    char filename[100];
    char str[100];
    FILE* fp = NULL;
    printf("파일 이름을 입력하시오: ");
    scanf("%s",filename);
    fp = fopen(filename, "r");
    if (filename == NULL) {
        printf("파일이 없습니다.");
        exit(0);
    }
    int i = 1 ,ret;
    while (!feof(fp)) {
        printf("%-5d",i++);
        ret = fgets(str,1000,fp);
        printf("%s",str);
    }
    fclose(fp);
    return 0;
}
cs

 

7번문제

#include<stdio.h>
 
int main(void) {
    char filename[100];
    char str[100];
    char ch;
    FILE* fp = NULL;
    printf("파일 이름을 입력하시오: ");
    scanf("%s", filename);
    scanf("%c"&ch);
    fp = fopen(filename, "w");
    while (1) {
        char *= gets(str);
        if (*== NULLbreak;
        fprintf(fp, "%s\n", str);
    }
    fclose(fp);
 
    return 0;
}
cs

 

8번문제

#include<stdio.h>
#include<string.h>
 
int main(void) {
    FILE* fp1, * fp2;
    char file1[100], file2[100];
    char str1[100], str2[100];
    printf("첫번째 파일 이름: ");
    scanf("%s", file1);
    printf("두번째 파일 이름: ");
    scanf("%s", file2);
    fp1 = fopen(file1, "r");
    fp2 = fopen(file2, "r");
 
    if (fp1 == NULL || fp2 == NULL) {
        printf("파일이 없습니다");
        return 0;
    }
 
    while (!feof(fp1)) {
    fgets(str1, 100, fp1);
    fgets(str2, 100, fp2);
        if (strcmp(str1,str2)) {
            printf("%s\n", str1);
            printf("%s\n", str2);
            exit(0);
        }
        ;
    }
    printf("두 파일은 서로 같습니다.");
    return 0;
}
cs

 

9번문제

#include<stdio.h>
#include<conio.h>
int main(void) {
    char filename[100];
    char str[100];
    char stop;
    int a;
    printf("첫번째 파일 이름: ");
    scanf("%s", filename);
    FILE* fp = fopen(filename,"r");
    if (fp == NULL) {
        printf("파일이 없습니다.");
        exit(0);
    }
    while (!feof(fp)) {
        getch();
        for (int i = 0; i < 5; i++) {
            a = fgets(str, 100, fp);
            if (a == 0return 0;
            printf("%s", str);
        }
    }
    return 0;
}
cs

 

10번문제

#include<stdio.h>
#include<string.h>
void writedata(char filename[], char str1[]);
void readdata(char filename[]);
void searching(char filename[], char bookname[]);
 
int main(void) {
    FILE* fp = fopen("bookdata.txt""a");
    int menu, ret;
    char str[100];
    fclose(fp);
    while (1) {
        printf("============\n1. 추가\n2. 츨력\n3. 검색\n4. 종료\n============\n정수를 입력하시오 : ");
        scanf("%d"&menu);
        getchar();
        printf("\n");
        switch (menu) {
        case 1:
            writedata("bookdata.txt""도서의 이름");
            writedata("bookdata.txt""저자");
            writedata("bookdata.txt""출판사");
            printf("\n");
            break;
        case 2:
            readdata("bookdata.txt");
            break;
        case 3:
            printf("제목을 입력하세요: ");
            gets_s(str, 100);
            searching("bookdata.txt", str);
            break;
        case 4:
            return 0;
        }
    }
    return 0;
}
 
void writedata(char filename[], char str1[]) {
    char str[100];
    FILE* fp = fopen(filename, "a");
    printf("%s:", str1);
    gets_s(str, 100);
    fprintf(fp, "%s: %s\n", str1, str);
    fclose(fp);
}
void readdata(char filename[]) {
    char str[100];
    int ret;
    FILE* fp = fopen(filename, "r");
    while (!feof(fp)) {
        ret = fgets(str, 100, fp);
        if (ret == 0break;
        printf("%s", str);
    }
    fclose(fp);
}
 
void searching(char filename[], char bookname[]) {
    char str[100= "도서의 이름: ";
    strcat(str, bookname);
    char tmp[100];
    int ret;
    FILE* fp = fopen(filename, "r");
    while (!feof(fp)) {
        fgets(tmp, 100, fp);
        if (strstr(tmp, str)) {
            printf("%s", tmp);
            fgets(tmp, 100, fp);
            printf("%s", tmp);
            fgets(tmp, 100, fp);
            printf("%s", tmp);
            fclose(fp);
            return 0;
        }
    }
    fclose(fp);
    printf("없습니다.\n");
    return 0;
}
cs

 

LIST