• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z zadaniem: Dzień tygodnia-SPOJ

0 głosów
1,055 wizyt
pytanie zadane 29 czerwca 2016 w C i C++ przez Aquater Nowicjusz (140 p.)

Witam,

Mam problem z zadaniem z serwisu SPOJ, nie rozumiem dlaczego system nie przyjmuje mojego rozwiązania.

Zastanawiałem się czy jest to być może wina zaimplementowanego przeze mnie sposobu radzenia sobie z wczytaniem niewłaściwej wartości do zmiennej dzień. Czy mógłby mi ktoś wytłumaczyć co robię źle ? :)

http://pl.spoj.com/problems/FR_05_01/

W skrócie zadanie polega na wypisaniu dniu tygodnia w zależności od wpisanego dnia i ile dni minęło.

#include <iostream>

using namespace std;

int main()
{

    string dzien;
    int a, b, ile;
    int d;
    cin>>d;
    cout<<endl;
    for (int i=1;i<=d;i++)
        {

            cin>>dzien;
                 if(dzien=="Pn") a=1;
            else if(dzien=="Wt") a=2;
            else if(dzien=="Sr") a=3;
            else if(dzien=="Cz") a=4;
            else if(dzien=="Pt") a=5;
            else if(dzien=="So") a=6;
            else if(dzien=="Nd") a=7;
            else break;


                    cin>>ile;
                    b=a;
                    a=(a+(ile%7))%7;
                    if (a==0) a=b;

            switch(a)
            {

                case 1: cout<<"Pn"<<endl;   break;
                case 2: cout<<"Wt"<<endl;   break;
                case 3: cout<<"Sr"<<endl;   break;
                case 4: cout<<"Cz"<<endl;   break;
                case 5: cout<<"Pt"<<endl;   break;
                case 6: cout<<"So"<<endl;   break;
                case 7: cout<<"Nd"<<endl;   break;

            }
            a=0;
    }

    return 0;
}

 

1 odpowiedź

+1 głos
odpowiedź 29 czerwca 2016 przez Włóczykij Użytkownik (750 p.)

Robisz dzielenie z resztą przez 7 czyli wyniki będą (0,1,2,3,4,5,6) a więc twój program nigdy nie wypisze Nd. Chciałeś pewnie to uwzględnić w

if (a == 0) a = b;

ale zamiast powinno być coś innego.

komentarz 29 czerwca 2016 przez Aquater Nowicjusz (140 p.)
Rzeczywiście :D dziękuję

Podobne pytania

0 głosów
1 odpowiedź 1,246 wizyt
pytanie zadane 21 marca 2016 w PHP przez KamQiX Dyskutant (9,090 p.)
–1 głos
10 odpowiedzi 3,873 wizyt
pytanie zadane 22 lipca 2016 w Rozwój zawodowy, nauka, praca przez niezalogowany
+1 głos
6 odpowiedzi 2,003 wizyt
pytanie zadane 7 lipca 2016 w Offtop przez skrzatjedyny Gaduła (3,150 p.)

93,772 zapytań

142,730 odpowiedzi

323,382 komentarzy

63,369 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...