Anonymní profil Davi Rubý – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Davi Rubý – Programujte.comAnonymní profil Davi Rubý – Programujte.com

 

Příspěvky odeslané z IP adresy 77.48.54.–

Davi Rubý
C / C++ › nemůžu najít chybu v jednodu…
22. 6. 2016   #211551

Zdravím,

teprve začínám s programováním v C++ a udělal jsem program založený na vzorci z tohoto webu: http://mathforum.org/dr.math/faq/faq.calendar.html

Při startu programu se zadá datum ve formátu dd mm yyyy. Ten podle potom rozdělí dny, měsíce, stolení a desetiletí. Potom se vypočte výsledek podle vzorce a určí, který den byl. Určování dní mám zatím vypnuté a vložil jsem řádek, který mi vypíše veškeré vypočtené hodnoty kvůli kontrole.

Zde nastává ten problém. Měsíc se pokaždé rovná 1. Přikládám zdroják a doufám, že mi snad někdo poradí.

Děkuji. :)

#include <iostream>
using namespace std;

int main() {

	int f, k, m, y, D, C, den;



	cout << "Enter date";
	cin >> k;
	cin >> m;
	cin >> y;

		switch (m) {
		case 1:
			m = 11;
			break;
		case 2:
			m = 12;
			break;
		case 3:
			m = 1;
			break;
		case 4:
			m = 2;
			break;
		case 5:
			m = 3;
			break;
		case 6:
			m = 4;
			break;
		case 7:
			m = 5;
			break;
		case 8:
			m = 6;
			break;
		case 9:
			m = 7;
			break;
		case 10:
			m = 8;
			break;
		case 11:
			m = 9;
			break;
		case 12:
			m = 10;
			break;
		default:
			cout << "Wrong choice.\n";
			break;
		} 

	C = (y / 100);
	D = y % 100;

	if (m = 1)
		D--;
	else if (m = 2)
		D--;


	f = k + ((13 + m - 1) / 5) + D + (D / 4) + (C / 4) - 2 * C;
	den = f % 7;

/*	switch (den) {
	case 0:
		cout << "Nedele\n";
		break;
	case 1:
		cout << "Pondeli\n";
		break;
	case 2:
		cout << "Utery\n";
		break;
	case 3:
		cout << "Streda\n";
		break;
	case 4:
		cout << "Ctvrtek\n";
		break;
	case 5:
		cout << "Patek\n";
		break;
	case 6:
		cout << "Sobota\n";
		break;
	}*/
	//thus is part of program, but turned off, because i need to explore the mistake
	cout << "k=" << k << endl << "m=" << m << endl << "C=" << C << endl << "D=" << D << endl << "f=" << f << endl << "den=" << den << endl;
//this can show me the mistake. The mistake is in mounth, but i don't know where...
	return 0;
}

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý