C++ как сделать, чтобы находило еще предыдущий день? ? #include "stdafx.h" #include using namespace std; int main() { int d, m, y, i; int max[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; setlocale(lc_all, "russian"); cout < < "введите день(число)"; cin > > d; cout < < "введите месяц(число)"; cin > > m; cout < < "введите год(число)"; cin > > y; if (y % 4 == 0 & & y % 100 ! = 0 || y % 400 == 0) max[1]++; for (i = 0; i < 12; i++) if (i + 1 == m & d == max[i]) { d = 1; m++; break; } if (i == 12) d++; if (m == 13) { m = 1; y++; } cout < < d < < " " < < m < < " " < < y; return 0; }
Вот программа без цикла.
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
int d, m, y, i;
int max[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
setlocale(0, "");
cout << "Введите день(число)";
cin >> d;
cout << "Введите месяц(число)";
cin >> m;
cout << "Введите год(число)";
cin >> y;
if ( (y % 4 == 0 && y % 100 != 0) || y % 400 == 0) //Проверка что год високосный
max[1]++;
if( d == max[m-1])
{
d = 1;
m++;
}
else
d++;
if (m == 13)
{
m = 1;
y++;
}
cout << d << " " << m << " " << y;
cin >> d;//Ожидание ввода, чтобы посмотреть результаты пработы программы
return 0;
}
Эта программа определяет следующий день от текущего.
А вот программа, которая определяет предыдущий день.
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
int d, m, y, i;
int max[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
setlocale(0, "");
cout << "Введите день(число)";
cin >> d;
cout << "Введите месяц(число)";
cin >> m;
cout << "Введите год(число)";
cin >> y;
if ( (y % 4 == 0 && y % 100 != 0) || y % 400 == 0) //Проверка что год високосный
max[1]++;
if( d == 1)
{
if (m == 1)
{
m = 12;
y--;
}
else
m--;
d = max[m - 1];
}
else
d--;
cout << d << " " << m << " " << y;
cin >> d;//Ожидание ввода, чтобы посмотреть результаты пработы программы
return 0;
}