Преобразовать целое число в дату - 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;
}
Объяснение кода листинга программы
Вывод списка элементов с номерами:
- В функции main() вводятся исходные данные - дата в формате ДДММГГГГ, и сохраняется в переменной date.
- Затем вызывается функция convert(), которая принимает дату и указатели на переменные day, month, year.
- В функции convert() происходит приведение входного параметра date к трем другим переменным.
- Значение переменной day получается вычитанием из date числа 1000000.
- Значение переменной month получается вычитанием из (date % 1000000) числа 10000.
- Значение переменной year получается вычитанием из (date % 10000) числа 10000.
- В функции main() выводятся значения переменных day, month, year.
- В конце функции main() возвращается 0, что означает успешное завершение программы.