C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
| #include <conio.h>
#include <iostream>
using namespace std;
int GetDOW (int day, int month, int year) //определение дня недели
{ //1 - понедельник, 7 - воскресение
int w, a, y, m;
a = (14-month)/12;
y = year-a;
m = month+12*a-2;
w = (7000 + (day + y + y/4 - y/100 + y/400 + (31*m)/12))%7;
if (w==0) w = 7; //по алгоритму воскресение - 0, меняем на 7
return w;
}
void main()
{
cout << "Input year: "; //ввод данных
int year, month;
cin >> year;
cout << "\nInput month: ";
cin >> month;
//проверка на корректность
if (year<0 || month<=0 || month>12) { cout << "\nBad data"; _getch(); return; }
int days; //число дней в месяце
if (month!=2) { //если не февраль, выбираем 30 или 31 день
if ((month<7 && month%2==0) || (month>7 && month%2!=0)) days=30;
else days = 31;
} else { //если февраль, проверяем год на високосность
if (!((year%100!=0 && year%4==0) || year%400==0)) days=28;
else days=29;
}
int w = GetDOW (1, month, year); //получаем день недели
cout << "\n Mo Tu We Th Fr Sa Su\n"; //выводим заголовок
for (int i=1; i<w; i++) cout << " "; //выводим пробелы до первого числа
for (int i=1; i<=days; i++, w++) { //выводим календарь
printf ("%3d", i);
if (w%7==0) cout << endl; //каждую неделю переводим курсор на след. строку
}
_getch ();
} |
|
Помогите пожалуйста переделать ее так,чтобы весь код был в void main(то есть возвращение(return) реализовать с помощью цикла)
и если не сложно убрать printf с getch,заменив (чтобы подклюдчалась одна библиотека #include <iostream> )
Я новичек<заранее благодарен за помощь
я пробовал так
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
| #include <iostream>
using namespace std;
void main(){
setlocale(LC_ALL,"");
int g ;int days; int month; int year,w,d=0,a,y,m;
cout << "Введите год: "; //ввод данных
cin >> year;
cout << "\nВведите месяц: ";
cin >> month;
if (month!=2) { //если не февраль, выбираем 30 или 31 день
if ((month<7 && month%2==0) || (month>7 && month%2!=0)) days=30;
else days = 31;
} else { //если февраль, проверяем год на високосность
if (!((year%100!=0 && year%4==0) || year%400==0)) days=28;
else days=29;
}
do{
a = (14-month)/12;
y = year-a;
m = month+12*a-2;
w = (7000 + (days + y + y/4 - y/100 + y/400 + (31*m)/12))%7;
//if (w==0) w = 7; //по алгоритму воскресение - 0, меняем на 7
if(d==0){
d=w;
}
d++;
}
while(d<w);
cout << "\n Пн Вт Ср Чт Пт Сб Вс\n"; //выводим заголовок
for (int i=1; i<w; i++) cout << " "; //выводим пробелы до первого числа
for (int i=1; i<=days; i++, w++) { //выводим календарь
printf ("%3d", i);
if (w%7==0) cout << endl; //каждую неделю переводим курсор на след. строку
cout<<"\n";
}} |
|
но не получилось помогите если не сложно