Advertisement
Guest User

Untitled

a guest
Jan 16th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <locale.h>
  4. #include <malloc.h>
  5.  
  6. char** createCalendar() {                                   //ета функция делает "календарь" массив строк где хранятся месяца
  7.     char** calendar = (char**)malloc(12 * sizeof(char*));
  8.     calendar[0] = (char*)malloc(6 * sizeof(char));
  9.     calendar[0] = "Января";
  10.     calendar[1] = (char*)malloc(7 * sizeof(char));
  11.     calendar[1] = "Февраля";
  12.     calendar[2] = (char*)malloc(5 * sizeof(char));
  13.     calendar[2] = "Марта";
  14.     calendar[3] = (char*)malloc(6 * sizeof(char));
  15.     calendar[3] = "Апреля";
  16.     calendar[4] = (char*)malloc(3 * sizeof(char));
  17.     calendar[4] = "Мая";
  18.     calendar[5] = (char*)malloc(4 * sizeof(char));
  19.     calendar[5] = "Июня";
  20.     calendar[6] = (char*)malloc(4 * sizeof(char));
  21.     calendar[6] = "Июля";
  22.     calendar[7] = (char*)malloc(7 * sizeof(char));
  23.     calendar[7] = "Августа";
  24.     calendar[8] = (char*)malloc(8 * sizeof(char));
  25.     calendar[8] = "Сентября";
  26.     calendar[9] = (char*)malloc(7 * sizeof(char));
  27.     calendar[9] = "Октября";
  28.     calendar[10] = (char*)malloc(6 * sizeof(char));
  29.     calendar[10] = "Ноября";
  30.     calendar[11] = (char*)malloc(7 * sizeof(char));
  31.     calendar[11] = "Декабря";
  32.     return calendar;
  33. }
  34.  
  35. void printMonth(int month) {                            //тут ты лезешь в этот массив строк за нужным месяцем (month - 1) и выводишь его на экран
  36.     char** calendar = createCalendar();
  37.     int i = 0;
  38.     while (calendar[month - 1][i] != '\0') {
  39.         printf("%c", calendar[month - 1][i]);
  40.         i++;
  41.     }
  42. }
  43.  
  44. int dayNumber()
  45. {
  46.     int day = 0, month = 0, sum = 0;
  47.     printf("Введите день. ");
  48.     scanf("%d", &day);
  49.     printf("Введите месяц. ");
  50.     scanf("%d", &month);
  51.     if (month <= 0 || month > 12 || day <= 0)
  52.     {
  53.         printf("Введены неверные данные. \n");
  54.     }
  55.     printf("%d ", day);
  56.     printMonth(month);                              //тут вызывается функция сверху
  57.  
  58.     switch (month)
  59.     {
  60.  
  61.     case 2:
  62.         if (day > 28)
  63.         {
  64.             printf("Некоректные данные. \n");
  65.             return dayNumber();
  66.         }
  67.         break;
  68.     case 4:; case 6:; case 9:; case 11:
  69.         if (day > 30)
  70.         {
  71.             printf("Некоректные данные. \n");
  72.             return dayNumber();
  73.         }
  74.         break;
  75.     default:
  76.         if (day > 31)
  77.         {
  78.             printf("Некоректные данные. \n");
  79.             return dayNumber();
  80.         }
  81.     }
  82.     month--;
  83.     while (month > 0)
  84.     {
  85.         switch (month)
  86.         {
  87.  
  88.         case 2:
  89.             sum = sum + 28;
  90.             break;
  91.         case 4:; case 6:; case 9:; case 11:
  92.             sum = sum + 30;
  93.             break;
  94.         default:
  95.             sum = sum + 31;
  96.         }
  97.         month--;
  98.     }
  99.     sum += day;
  100.     printf(" %d день", sum);
  101. }
  102.  
  103. int main()
  104. {
  105.     setlocale(LC_ALL, "RUS");
  106.     printf("По дате определить порядковый номер дня текущего года. \n");
  107.     dayNumber();
  108.     int sooqa;
  109.     scanf("%d", &sooqa);
  110.     return 0;
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement