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