Подскажите плиз.

Сегодня целый день убил, но так и не решил проблему.
Знаю, что для знатоков — это 2 минуты. Помогите плиз.
Задача:
Программа просит ввести день недели и после ввода проверяет есть ли такой день.
Если есть — выводит этот же день на экран. Если нет — выводит список дней недели. Все вроде бы просто. Но.... Если я ввожу monday? то да оно выводит monday. Если я ввожу tuesday, мне выводит два дня: monday и tuesday, вместо одного. Если ввожу friday — выводит все дни до friday, а должно только один день выводить.

#include <limits>
#include <iomanip>
#include <iostream>
#include <cstdlib>


using std::cout;
using std::string;
using std::cin;
using std::endl;
using std::setprecision;
using std::numeric_limits;



int main ()
{
setlocale(LC_ALL, "Russian");
cout << "IF/ELSE"<< endl<<endl;
string weekday[]         
{"monday","tuesday","wednesday","thursday","friday","saturday","sunday"};
const auto max2 = sizeof weekday /sizeof weekday[0];
string day;
cout <<"Enter day"<<endl;
getline(cin,day);
cout <<endl<<endl;
for(auto i=size_t();i < max2; i++)
{

if(day==weekday[i])  {
string days = day;
cout << days<<endl; 
break;}
else{
cout << weekday[i]<<endl;}
}

cout <<endl<<endl;

return 0;
}
#include <limits>
#include <iomanip>
#include <iostream>
#include <cstdlib>

using std::cout;
using std::string;
using std::cin;
using std::endl;
using std::setprecision;
using std::numeric_limits;

int main ()
{
    setlocale(LC_ALL, "Russian");
    cout << "IF/ELSE" << endl << endl;

    string weekday[] = {"monday","tuesday","wednesday","thursday","friday","saturday","sunday"};

    const auto max2 = sizeof weekday /sizeof weekday[0];
    string day;

    cout << "Enter day" << endl;
    getline(cin, day);
    cout << endl << endl;
    bool found = false;
    for (auto i = size_t(); i < max2; i++) {

        if (day == weekday[i])  {
            string days = day;
            cout << day << endl;
            found = true;
            break;
        }
    }

    if (!found) {
        for (auto i = size_t(); i < max2; i++) {
            cout << weekday[i] << endl;
        }
    }

    cout << endl << endl;

    return 0;
}

Спасибо огромное! Никогда бы не додумался использовать bool

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.