Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Chương trình C tách số chẵn, lẻ, nguyên tố vào các file riêng

Đọc file numbers.txt, phân loại số và ghi vào 3 file: even-numbers.txt, odd-numbers.txt, prime-numbers.txt.

Chương trình C

#include <stdio.h>
#include <stdlib.h>

int even(const int num);
int prime(const int num);

int main() {
    FILE *fptrinput, *fptreven, *fptrodd, *fptrprime;
    int num;

    fptrinput = fopen("numbers.txt", "r");
    fptreven = fopen("even-numbers.txt", "w");
    fptrodd = fopen("odd-numbers.txt", "w");
    fptrprime = fopen("prime-numbers.txt", "w");

    if (!fptrinput || !fptreven || !fptrodd || !fptrprime) {
        printf("Không mở được file.\n");
        exit(EXIT_FAILURE);
    }

    printf("File mở thành công. Đang đọc số nguyên...\n\n");
    while (fscanf(fptrinput, "%d", &num) != -1) {
        if (prime(num))
            fprintf(fptrprime, "%d\n", num);
        else if (even(num))
            fprintf(fptreven, "%d\n", num);
        else
            fprintf(fptrodd, "%d\n", num);
    }

    fclose(fptrinput); fclose(fptreven); fclose(fptrodd); fclose(fptrprime);
    printf("Ghi dữ liệu thành công.\n");
    return 0;
}

int even(const int num) { return !(num & 1); }

int prime(const int num) {
    if (num < 0) return 0;
    for (int i = 2; i <= num/2; i++)
        if (num % i == 0) return 0;
    return 1;
}

Kết quả

File opened successfully. Reading integers from file. Data written successfully.

Giả sử numbers.txt chứa 1..17:

  • even-numbers.txt: 4 6 8 10 12 14 16
  • odd-numbers.txt: 9 15
  • prime-numbers.txt: 1 2 3 5 7 11 13 17