Записать в файл массив 10 строк, содержащих даты, увеличивающиеся на 1 день - C (СИ)

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

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

В общем нужно : 1. Создать пустой текстовый файл, записать в него массив 10 строк, содержащих даты, увеличивающиеся на 1 день, начиная с сегодняшнего числа. Помогите пожалуйста.
вот мой код
#include <stdio.h>
 
int main()
 
{
 
    int a[11] = { 1, 2,3, 4, 5, 6, 7,8,9,10};
 
    int i;
 
    int size; 
 
    size = sizeof(a) / sizeof(int);
 
    FILE*output = fopen("C:\Users\Zeus\Desktop\file", "w");
 
    for (i = 0; i < size; i++)
    fprintf(output, "%d", a[i]);
    
    fclose(output);
 
}
выдаёт ошибку
В Dev C++ компилит без проблем. Визуалка не хочет. В чём проблема?

Решение задачи: «Записать в файл массив 10 строк, содержащих даты, увеличивающиеся на 1 день»

textual
Листинг программы
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
 
 
int main()
 
{                       //          1       2       3       4       5       6       7       8       9       10  11  12
    int month[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
    int i = 1, m, d, y, n, d1, m1, y1, leap = 0;
    int size;
    unsigned int data=0;
 
    FILE *output = fopen("1.txt", "w");
 
    printf("Day: ");
    scanf("%d", &d);
    printf("Month: ");
    scanf("%d", &m);
    printf("Year: ");
    scanf("%d", &y);
    printf("N: ");
    scanf("%d", &n);
 
    leap = (y % 4 == 0 && y % 100 != 0 || y % 400 == 0);
 
    while (i <= n)
    {
        if (d + 1 > month[m]+(leap && m==2))
        {
            if (m + 1 > 12)
            {
                m = 1;
                y = y + 1;
                leap = ( y % 4 == 0 && y % 100 != 0 || y % 400 == 0);
            }
            else
            {
                m = m + 1;
                y = y;
            }
            d = 1;
        } 
        else
        {
            d = d + 1;
        }
        printf("%02d.%02d.%4d\n", d, m, y);
        fprintf(output, "%02d.%02d.%4d\n", d, m, y);
        ++i;
    }
 
    fclose(output);
 
    return 0;
 
}

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

  1. Объявлены массив month и переменные i, m, d, y, n, d1, m1, y1, leap со значениями, соответственно:
    • month: {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
    • i: 1
    • m: 0
    • d: 1
    • y: 0
    • n: 0
    • d1: 0
    • m1: 0
    • y1: 0
    • leap: 0
  2. Открыт файл 1.txt для записи (режим w).
  3. Пользователю предлагается ввести день, месяц и год.
  4. Вычисляется значение переменной leap в зависимости от года:
    • Если год делится на 4 и не делится на 100 (или делится на 400), то это високосный год, и значение leap будет 1.
    • В противном случае, значение leap будет 0.
  5. Запускается цикл, который будет выполняться столько раз, сколько указано пользователем (n).
  6. Внутри цикла проверяется, не превышает ли текущая дата (d + 1) максимальный количество дней в месяце (month[m]) с учетом того, что если месяц равен 2 и год високосный, то добавляется один день.
  7. Если текущая дата превышает максимальное количество дней в месяце, то выполняется блок кода, который переходит к следующему месяцу (m + 1) и году (y + 1), и снова проверяет количество дней.
  8. Если текущая дата не превышает максимальное количество дней в месяце, то просто увеличивается значение переменной d на 1.
  9. В каждой итерации цикла выводится текущая дата в формате d.m.yyyy на экран и записывается в файл 1.txt.
  10. Увеличивается значение переменной i на 1.
  11. Цикл завершается, когда значение переменной i становится равным n.
  12. Файл 1.txt закрывается.
  13. Программа завершается с кодом 0, что означает успешное выполнение.

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


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

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

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