Другие языки программирования и технологии

Решите задачи в С++

Решить 2 задачи в C++
1. Дано трёхзначное число. Вывести вначале его последнюю цифру (единицы) , а затем - его среднюю цифру (десятки).
2. Дни недели пронумерованы следующим образом: 1- понедельник, 2 -вторник, ..6-суббота, 7 - воскресенье. Дано целое число К, лежащее в диапазоне 1-365. Определить номер дня недели для К-го дня года, если известно, что в этом году 1 января было вторником.
Задача N 1:

int n;
cin >> n;
cout << n % 10 << n / 10 % 10;

Задача 2:

int day;
cin >> day;
cout << day % 7 + 1;

Условие "1 января - вторник" обеспечивает максимально простое решение задачи.
Vladimir Nikitin
Vladimir Nikitin
68 916
Лучший ответ
2.#include < iostream >
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
int day;
int god = 2019;
cin >> day;
int n = day % 7;
switch (god)
{
case 2018:{
if (n == 0) n = 7; //понедельник 1 января 2018
break; }
case 2019:{
n = n + 1; //вторник 1 января 2019
break;
}

case 2020:{
n = n + 2; //среда 1 января 2020
if (n == 8) n = 1;
break;
}
default:
break;
}

cout << "day=" << n;
return 0;
}
Иван Орлов
Иван Орлов
36 000
1.
#include < iostream >
#include < windows.h >
#include < string >

using namespace std;

int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
system("color 0A");

cout << "Введите трёхзначное число ";
string s;
for (;;)
{
getline(cin, s);
bool b = true;
if (s.size() != 3)
{
cout << "Число не является трёхзначным" << endl;
b = false;
}
else if (s.find(' ') != -1)
{
cout << "Строка не должна содержать пробелы" << endl;
b = false;
}
else
{
for (auto c : s)
{
if (c > '9' || c < '0')
{
cout << "Введено не число" << endl;
b = false;
break;
}
}
}
if (b)
{
break;
}
else
{
cout << "Допушена ошибка. Повторите ввод числа" << endl;
s.clear();
}
}
cout << "Правая цифра числа "
<< static_cast < short > (s[s.size() - 1]) - '0'
<< endl
<< "Средняя цифра числа "
<< static_cast < short > (s[s.size() / 2]) - '0'
<< endl;

system("pause");
return 0;
}
Denis Kuznetsov
Denis Kuznetsov
8 552