Предмет: Информатика, автор: Alena100499

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;
}


kvintovskiy: Что вообще должна делать ваша программа?

Ответы

Автор ответа: kvintovskiy
1
Начнем с того, что исправим текущий код. У вас используется цикл, но он совершенно здесь не нужен.
Вот программа без цикла. 

#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;

}





Alena100499: Как сделать, чтобы это все в одной задаче было??
Alena100499: можешь подсказать? Отдельно понимаю, а совместить никак не получается
kvintovskiy: Попробуйте сами. Смотрите, после ввода d m y, вам нужно их присвоить переменным d1, m1, y1. И тогда уже каждая часть кода будет работать со своими переменными и не будет путаницы.
Alena100499: попробую, спасибо большое\
Похожие вопросы
Предмет: Алгебра, автор: blablabla76
Предмет: Русский язык, автор: hshsshshj
Предмет: Биология, автор: Гомункул111