View difference between Paste ID: RY0USxVZ and uzpn2JEq
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
}