Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Borland C++] Sprawdzanie poprawności + wydruk.


Rekomendowane odpowiedzi

Opublikowano

Witam,

Mam na jutro napisać program któremu:
1. Podajemy liczby odpowiadające za d(dzień, m(miesiąc) oraz r(rok).
2. Program ma sprawdzić czy w danym miesiącu jest tyle dni.

a) Luty ma różnie w roku przestępnym(czy jak mu tam) dlatego to też trzeba uwzględnić.
3. Program ma sprawdzić czy jest tyle miesięcy.
4. Program nie dopuszcza wydruku z rokiem większym niż 2200.

 

 

I teraz tak, obecnie nabazgrałem coś takiego, co muszę zrobić, co jest źle?

#include <iostream.h>
#include <conio.h>
 
void main()
{
clrscr();
int d,m,r;
int ld;
int dat=1;
 
//Podawanie Dnia
cout << "D=";
cin >> d;
 
//Podawanie Miesiaca
cout << "M=";
cin >> m;
 
//Podawanie Roku
cout << "R=";
cin >> r;
 
//Funkcja
if (m==1||m==3||m==5||m==7||m==8||m==10||m==12)
{
ld<=31;
}
else
{
if (m==4||m==6||m==9||m==11)
{
ld<=30;
}
else
{
if (m==2)
{
if(r%4==0)
ld=29;
}
else
{
ld=28;
}
}
}
 
getch();
}
Opublikowano

#include <iostream>

#include <cmath>

using namespace std;

int main()

{

int d, m, r;

 

//Podawanie Dnia

cout << "D=";

cin >> d;

 

//Podawanie Miesiaca

cout << "M=";

cin >> m;

 

//Podawanie Roku

cout << "R=";

cin >> r;

 

//Funkcja

if(min(12,max(1, m)) != m) return 1; //nie ma takiego miesiaca

m-=m>7;

if(max(1, min(d, (30+(m&1))*(m!=2)+28*(m==2)+(m==2&&((!(r%4)&&r%100)||!(r%400)))))!=d) return 2; //nie ma takiego dnia

if(r>2200) return 3; //nie ma takiego roku

return 0;

}

i nie wiem kto was uczy tego c++, ale pewnie macie bardzo starego nauczyciela

Opublikowano

tak tez mozna ;]

#include <iostream>
#include <conio.h>
 using namespace std;
int main()
{

int d,m,r;

	//Podawanie Dnia
		cout << "D=";
		cin >> d;

if(0<d&&d<32)
	{
		//Podawanie Miesiaca
		cout << "M=";
		cin >> m;
		
	if(0<m&&m<13)
		{
		//Podawanie Roku
		cout << "R=";
		cin >> r;
		
		if(r<=2200)
			{
		
			return 0;
			
			}else return 3;
		}else return 2;
	}else return 1;			
 
}
Opublikowano

nie bierzesz pod uwagę tego, że miesiące mają różną liczbę dni

A no prawda ,teraz chyba juz jest dobrze xD







#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    int d, m, r;

//Podawanie Dnia
    cout << "D=";
    cin >> d;

//Podawanie Miesiaca
    cout << "M=";
    cin >> m;
	

//Podawanie Roku
    cout << "R=";
    cin >> r;

//Funkcja
if(r<=2200)
    {
    if(0<m&&m<13)
        {
        m+=(m>7);
          if(((((m!=2)&&((30+(m%2!=0))>=d))||((m==2)&&((28+(r%2==0))>=d)))&&(d>=1)))
	     {
	         return 0;	//wszystko pasi ;]
					 	
	     }else    return 1; //nie ma takiego dnia	
	}else    return 2; //nie ma takiego miesiaca	
    }else    return 3; //nie ma takiego roku

}
Opublikowano

dalej nie do konca, dlaczego r%2? i dlaczego nie bierzesz pod uwagę tego, że co 100 nie jest przestępny chyba ze jest wielokrotnością 400

Opublikowano

Teraz juz chyba smiga jak nalezy xD





	
if(r<=2200)
  {			
  if(0<m&&m<13)
    {
    m+=(m>7);
    if(((((m!=2)&&((30+(m%2!=0))>=d))||((m==2)&&((28+(((r%4==0)&&(r%100!=0))||((r%100==0)&&(r%400==0))))>=d)))&&(d>=1)))
      {
               return 0; //wszystko pasi ;]
      }else  return 1; //nie ma takiego dnia	
    }else  return 2; //nie ma takiego miesiaca	
  }else  return 3; //nie ma takiego roku

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...