Program "Sierpien"

0

Napisalem program, ktory dotyczy terazniejszego miesiaca. Uzytkownik podaje dzien (Pn-Ndz), a komputer wyswietla w jakie dni miesiaca przypada dany dzien tygodnia. Oto kod zrodlowy:

#include <iostream>
using namespace std;

int main()
{
	int sierpien_dni[6][7] = {
		{0, 0, 0, 0, 0, 1, 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, 29, 30},
		{31}
	};
	
	cout<<"Podaj dzien tygodniu od 1 (Pn) do 7 (Ndz): ";
	int dzien;
	cin>>dzien;
	
	cout<<"\n"<<"Twoj wybrany dzien tygodnia wypada w nastepujace dni w sierpniu: "<<endl;
	cout<<sierpien_dni[0][0]+dzien-1<<endl;
	cout<<sierpien_dni[1][0]+dzien-1<<endl;
	cout<<sierpien_dni[2][0]+dzien-1<<endl;
	cout<<sierpien_dni[3][0]+dzien-1<<endl;
	cout<<sierpien_dni[4][0]+dzien-1<<endl;
	cout<<sierpien_dni[5][0]+dzien-1<<endl;

 
 cin.get();
 cin.get();
 return 0;
 
} 

Ktos wie w jaki sposob moglbym to poprawic? Bo przy poniedzialku na przyklad program liczy tez pierwszy wiersz, wyswietla ze wtorek przypada tez na 32 itd. Jak wystrzec sie takich bledow?

0

Przejść z tablicy na algorytm.

Mianowicie:
Wiemy, że 1 sierpnia to była sobota.
Czyli jeśli reszta z dzielenia dnia przez 7 wynosi 1 to jest sobota (1 % 7 = 1, 8 % 7 = 1, 15 % 7 = 1 itp.)
Analogicznie dla innych dni.

0
#include <iostream>
using namespace std;
 
int main()
{
    cout<<"Podaj dzien tygodnia od 1 (Pn) do 7 (Ndz): ";
    int dzien;
    cin>>dzien;
    dzien = (dzien+1) % 7 + 1;

    cout<<"\n"<<"Twoj wybrany dzien tygodnia wypada w nastepujace dni w sierpniu: "<<endl;
    while (dzien <= 31)
    {
        cout << dzien << endl;
        dzien+=7;
    }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1