#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <errno.h>
int main()
{
FILE* number;
char strings[3][100];
errno_t err = fopen_s(&number, "number.bin", "wb");
if (err != 0)
{
printf("error open number.bin\n");
return 1;
}
FILE* divided;
err = fopen_s(÷d, "divided.bin", "wb+");
if (err != 0)
{
printf("error open divided.bin\n");
return 1;
}
printf("Enter 3 lines:\n");
for (int i = 0; i < 3; i++)
{
fgets(strings[i], sizeof(strings[i]), stdin);
fwrite(strings[i], sizeof(char), strlen(strings[i]), number);
char* token;
char* nextToken = NULL;
token = strtok_s(strings[i], " ", &nextToken);
int count = 0;
int numbers[100] = { 0 }; // Ініціалізація масиву чисел нулями
while (token != NULL)
{
if (atoi(token) % 2 == 0)
{
numbers[count] = atoi(token);
count++;
}
token = strtok_s(NULL, " ", &nextToken);
}
for (int j = count - 1; j >= 0; j--)
{
fprintf(divided, "%d ", numbers[j]);
}
fprintf(divided, "\n");
}
fseek(divided, 0, SEEK_SET);
printf("Numbers that are multiples of 2 in reverse order:\n");
char str[100];
while (fscanf_s(divided, "%99s", str, (unsigned)_countof(str)) == 1)
{
if (strcmp(str, "0") != 0)
{
printf("%s ", str);
}
}
fclose(number);
fclose(divided);
printf("\nSuccessfully written to file divided\n");
return 0;
}
drive from the keyboard
12 4 9 5
200 4568 89 8
6 33333 489 725 20
I will rewrite in the resulting file all numbers that are divisible by 2 in reverse order get:
4 12
8 4568 200
0 20 6
where did the 0 in the last line come from?