Создать файл целых чисел с данным именем и записать в него N первых положительных четных чисел - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дано имя файла и целое число N (> 1). Создать файл целых чисел с данным именем и записать в него N первых положительных четных чисел (2, 4, …).
#include <stdio.h>
#include <stdlib.h>
void main()
{
    FILE *fp;
    char name[10];
    int *a,*b,*d,i,j,N,n=40,c=40,kol=0,k,index;
 
    printf("\n Vvedite imya file: ");
    scanf("%s",name);
    if((fp=fopen(name, "w"))==NULL)
    {
        printf("\n File uspeshno sozdan\n");
    }
    else
    {
        printf("\n Vvedite N>1, N=");
        scanf("%d",&N);
        puts("\n");
        fprintf(fp,"***** Dannuy massive *****\n");
        puts("\n");
        a=(int*)malloc(n*sizeof(int));
        d=(int*)malloc(n*sizeof(int));
        for(i=0;i<n;i++)
            a[i]=rand()%c-10;
        for(i=0;i<n;i++)
        {   
            if(a[i]>0 && a[i]%2==0)
            {
                printf("%4d",a[i]);
                d[i]=1;
            }
            if(a[i]<0 && a[i]%2==1)
            {
                d[i]=2;
            }
        }
    
        b=(int*)malloc(N*sizeof(int));
        puts("\n");
        for(i=0;i<n;i++)
        {
            if(d[i]==1 && d[i]!=2)
            {
                b[j]=a[i];
                j++;
            }
        }
        for(i=0;i<N;i++)
            printf("%4d",b[j]);
    }
}

Решение задачи: «Создать файл целых чисел с данным именем и записать в него N первых положительных четных чисел»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
#define MAX_SIZE 32
 
int main()
{
    char input_file[MAX_SIZE];
    FILE* output;
    int number;
    int i = 1;
 
    if (printf("Input name of file: ") && scanf("%s", output_file) && (output = fopen(input_file, "w")) != NULL) {
        if (printf("Input number: ") && scanf("%d", &number) && number > 1) {
            do {
                fprintf(output, "%d ", i++ * 2);
            } while (i <= number);
        }
    } else {
        fprintf(stdout, "Error. Can't create file \"%s\"", output_file);
        _exit(EXIT_FAILURE);
    }
 
    return 0;
}

Объяснение кода листинга программы

Вывод: Список не более 20 элементов:

  1. Объявлены две переменные типа char: input_file и output_file. Первая используется для хранения имени файла, вторая - для вывода сообщений об ошибках.
  2. Объявлены две переменные типа int: number и i. Первая используется для хранения введенного числа, вторая - для подсчета количества записанных в файл чисел.
  3. Выполняется блок if. Если имя файла введено верно и файл открыт, выполняется следующий блок.
  4. Выполняется блок if. Если введено число больше 1, выполняется следующий блок.
  5. Запускается цикл do-while. Пока i меньше или равно числу, выводится в файл число i, умноженное на 2, и i увеличивается на 1.
  6. Если при открытии файла возникла ошибка, выводится сообщение об ошибке с указанным именем файла, и программа завершается с кодом EXIT_FAILURE.
  7. Если при вводе числа возникла ошибка, выводится сообщение об ошибке.
  8. Если при вводе имени файла возникла ошибка, выводится сообщение об ошибке с указанным именем файла, и программа завершается с кодом EXIT_FAILURE.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы