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

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

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

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

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

textual
Листинг программы
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3.  
  4.  
  5. int main()
  6.  
  7. {                       //          1       2       3       4       5       6       7       8       9       10  11  12
  8.     int month[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
  9.     int i = 1, m, d, y, n, d1, m1, y1, leap = 0;
  10.     int size;
  11.     unsigned int data=0;
  12.  
  13.     FILE *output = fopen("1.txt", "w");
  14.  
  15.     printf("Day: ");
  16.     scanf("%d", &d);
  17.     printf("Month: ");
  18.     scanf("%d", &m);
  19.     printf("Year: ");
  20.     scanf("%d", &y);
  21.     printf("N: ");
  22.     scanf("%d", &n);
  23.  
  24.     leap = (y % 4 == 0 && y % 100 != 0 || y % 400 == 0);
  25.  
  26.     while (i <= n)
  27.     {
  28.         if (d + 1 > month[m]+(leap && m==2))
  29.         {
  30.             if (m + 1 > 12)
  31.             {
  32.                 m = 1;
  33.                 y = y + 1;
  34.                 leap = ( y % 4 == 0 && y % 100 != 0 || y % 400 == 0);
  35.             }
  36.             else
  37.             {
  38.                 m = m + 1;
  39.                 y = y;
  40.             }
  41.             d = 1;
  42.         }
  43.         else
  44.         {
  45.             d = d + 1;
  46.         }
  47.         printf("%02d.%02d.%4d\n", d, m, y);
  48.         fprintf(output, "%02d.%02d.%4d\n", d, m, y);
  49.         ++i;
  50.     }
  51.  
  52.     fclose(output);
  53.  
  54.     return 0;
  55.  
  56. }

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы