Преобразовать целое число в дату - C (СИ)

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

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

По условию задачи требуется разработать функцию, которая принимает дату в виде целого числа в формате ДДММГГГГ и при помощи параметров возвращает указатели на день, месяц и год. Я состряпал такой код, но в указателях разбираюсь плохо. Как следствие - ошибка "Нарушение прав доступа при чтении". Кто поможет?
#include <stdio.h>
#include <locale.h>
 
int convert(int *day, int *month, int *year);
 
int main()
{
    int *day, *month, *year, i;
    setlocale(LC_CTYPE, "rus");
    convert(&day, &month, &year);
    getch();
    return 0;
}
 
int convert(int *day, int *month, int *year)
{
    int date=0;
    printf("Введите дату в формате ДДММГГГГ: ");
    scanf("%d", date);
    day=date-(date%1000000);
    month=(date%1000000)-(date%10000);
    year=date%10000;
    printf("%d %d %d", day, month, year);
    return 1;
}

Решение задачи: «Преобразовать целое число в дату»

textual
Листинг программы
#include <stdio.h>
#include <locale.h>
 
int convert(int date, int *day, int *month, int *year);
 
int main()
{
    int day, month, year;
    int date;
 
    setlocale(LC_CTYPE, "rus");
 
    printf("Введите дату в формате ДДММГГГГ: "); 
    scanf("%d", &date);
    
    convert(date, &day, &month, &year);
 
    printf("day:%d month:%d year:%d", day, month, year);
 
    return 0;
}
 
int convert(int date, int *day, int *month, int *year)
{
    *day = date - (date % 1000000);
    *month = (date % 1000000) - (date % 10000);
    *year = date % 10000;
    
    return 1;
}

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

Вывод списка элементов с номерами:

  1. В функции main() вводятся исходные данные - дата в формате ДДММГГГГ, и сохраняется в переменной date.
  2. Затем вызывается функция convert(), которая принимает дату и указатели на переменные day, month, year.
  3. В функции convert() происходит приведение входного параметра date к трем другим переменным.
  4. Значение переменной day получается вычитанием из date числа 1000000.
  5. Значение переменной month получается вычитанием из (date % 1000000) числа 10000.
  6. Значение переменной year получается вычитанием из (date % 10000) числа 10000.
  7. В функции main() выводятся значения переменных day, month, year.
  8. В конце функции main() возвращается 0, что означает успешное завершение программы.

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


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

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

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