SHOW:
|
|
- or go back to the newest paste.
1 | #define _CRT_SECURE_NO_WARNINGS | |
2 | #include <stdio.h> | |
3 | #include <locale.h> | |
4 | #include <malloc.h> | |
5 | - | enum month1 { January = 1, February, March, April, May, June, July, August, September, October, November, December }; |
5 | + | |
6 | char** createCalendar() { //ета функция делает "календарь" массив строк где хранятся месяца | |
7 | - | void mon(int number) |
7 | + | char** calendar = (char**)malloc(12 * sizeof(char*)); |
8 | calendar[0] = (char*)malloc(6 * sizeof(char)); | |
9 | - | switch (number) |
9 | + | calendar[0] = "Января"; |
10 | calendar[1] = (char*)malloc(7 * sizeof(char)); | |
11 | - | case 1: printf("Января "); |
11 | + | calendar[1] = "Февраля"; |
12 | calendar[2] = (char*)malloc(5 * sizeof(char)); | |
13 | - | case 2: printf("Февраля "); |
13 | + | calendar[2] = "Марта"; |
14 | calendar[3] = (char*)malloc(6 * sizeof(char)); | |
15 | - | case 3: printf("Марта"); |
15 | + | calendar[3] = "Апреля"; |
16 | - | break; |
16 | + | calendar[4] = (char*)malloc(3 * sizeof(char)); |
17 | - | case 4: printf("Апреля "); |
17 | + | calendar[4] = "Мая"; |
18 | - | break; |
18 | + | calendar[5] = (char*)malloc(4 * sizeof(char)); |
19 | - | case 5: printf("Мая "); |
19 | + | calendar[5] = "Июня"; |
20 | - | break; |
20 | + | calendar[6] = (char*)malloc(4 * sizeof(char)); |
21 | - | case 6: printf("Июня "); |
21 | + | calendar[6] = "Июля"; |
22 | - | break; |
22 | + | calendar[7] = (char*)malloc(7 * sizeof(char)); |
23 | - | case 7: printf("Июля "); |
23 | + | calendar[7] = "Августа"; |
24 | - | break; |
24 | + | calendar[8] = (char*)malloc(8 * sizeof(char)); |
25 | - | case 8: printf("Августа "); |
25 | + | calendar[8] = "Сентября"; |
26 | - | break; |
26 | + | calendar[9] = (char*)malloc(7 * sizeof(char)); |
27 | - | case 9: printf("Сентября "); |
27 | + | calendar[9] = "Октября"; |
28 | - | break; |
28 | + | calendar[10] = (char*)malloc(6 * sizeof(char)); |
29 | - | case 10: printf("Октября "); |
29 | + | calendar[10] = "Ноября"; |
30 | - | break; |
30 | + | calendar[11] = (char*)malloc(7 * sizeof(char)); |
31 | - | case 11: printf("Ноября "); |
31 | + | calendar[11] = "Декабря"; |
32 | - | break; |
32 | + | return calendar; |
33 | - | case 12: printf("Декабря "); |
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 | - | if (month <= 0 || month > 12 || day <= 0) |
45 | + | |
46 | int day = 0, month = 0, sum = 0; | |
47 | - | printf("Введены неверные данные. \n"); |
47 | + | |
48 | scanf("%d", &day); | |
49 | printf("Введите месяц. "); | |
50 | - | mon(month); |
50 | + | |
51 | if (month <= 0 || month > 12 || day <= 0) | |
52 | { | |
53 | printf("Введены неверные данные. \n"); | |
54 | - | |
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 | - | |
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 | - | printf("%d день", sum); |
94 | + | |
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 | } |