Задача Вывести название дня недели по его номеру.
Программа представляет собой сопоставление числового значения и соответствующей ему текстовой строки. Для реализации таких конструкций чаще всего используется оператор ветвления switch.
Реализация на 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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
int day;
system("chcp 1251");
system("cls");
cout << "Введите номер дня недели: ";
cin >> day;
switch (day)
{
case 1: cout << "понедельник"; break;
case 2: cout << "вторник"; break;
case 3: cout << "среда"; break;
case 4: cout << "четверг"; break;
case 5: cout << "пятница"; break;
case 6: cout << "суббота"; break;
case 7: cout << "воскресенье"; break;
default: cout << "Неверно введен день недели"; break;
}
cin.get(); cin.get();
return 0;
}
#include <stdlib.h>
using namespace std;
int main()
{
int day;
system("chcp 1251");
system("cls");
cout << "Введите номер дня недели: ";
cin >> day;
switch (day)
{
case 1: cout << "понедельник"; break;
case 2: cout << "вторник"; break;
case 3: cout << "среда"; break;
case 4: cout << "четверг"; break;
case 5: cout << "пятница"; break;
case 6: cout << "суббота"; break;
case 7: cout << "воскресенье"; break;
default: cout << "Неверно введен день недели"; break;
}
cin.get(); cin.get();
return 0;
}
Результат выполнения
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
#define SIZE 7
int main(void)
{
int day;
const char *week_days[SIZE] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
printf("Enter the number of the day of the week: ");
while(scanf("%d", &day) == 1)
{
if(day < 0 || day > 7)
{puts("Enter the number between 1 and 7: ");}
else
{
printf("%s\n", week_days[day-1]);
printf("Enter another number (q to quit): ");}
}
putchar('\n');
return(0);
}
Зачем так усложнять со switch?
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <string>
using namespace std;
int main() {
setlocale(0, "RU");
int Day;
string Week[7] = { "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота", "Воскресенье" };
cout << "Введите день недели: ";
cin >> Day;
while (Day > 7) {
Day -= 7;
}
cout << Week[Day — 1];
return 0;
}
//Microsoft Visual Studio 2019 Console Application
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <string>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
string Week[7] = {"Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота", "Воскресенье"};
int day;
cout << "Введите номер дня недели: ";
cin >> day;
cout << Week[day-1]<< endl;
//system("pause");
return 0;
}