Skip to main content

C Program To Find Leap Years.

In the Gregorian calendar (the current standard calendar in the world), normally the years that are integer multiples of 4 are called leap years. In each leap year, the month of February has 29 days instead of 28. Adding an extra day to the calendar every four years compensates for the fact that a period of 365 days is shorter than a solar year by almost 6 hours. The Gregorian calendar was first used in 1582.

Some exceptions to this basic rule are required since the duration of a solar year is slightly less than 365.25 days. Over a period of 4 centuries, the accumulated error of adding a leap day every 4 years amounts to about 3 extra days. The Gregorian calendar therefore omits 3 leap days every 400 years, which is the length of its leap cycle. This is done by omitting February 29 in the 3 century years (integer multiples of 100) that are not also integer multiples of 400. For example, 1700, 1800, 1900, 2100 and 2200 are common years, but 1600, 2000 and 2400 are leap years. By this rule, the average number of days per year is 365 + 1/4 − 1/100 + 1/400 = 365.2425.

There is no year 0. The first year in the Gregorian calendar is year 1. The year before 1AD in the western calendar is 1BC, not "year 0".

Method 1:
#include <stdio.h>
int main() {

int year;
printf(" Enter a year: ");
scanf("%d", &year);

while ( year <= 0) {
printf("\n\nWrong Input! The Gregorian Calendar Starts with Year 1.\n\n");
return 0;
}

while ( year > 0) {

if ( year%400 == 0)
printf("\n\n %d is a leap year.\n\n", year);
else if ( year%100 == 0)
printf("%\n\n %d is not a leap year.\n\n", year);
else if ( year%4 == 0 )
printf("\n\n %d is a leap year.\n\n", year);

else
printf("\n\n %d is not a leap year.\n\n", year);
return 0;
}}

Method 2:
#include<stdio.h>
int main() {

int year;
printf(" Enter any year: ");
scanf("%d",&year);

while ( year <= 0) {
printf("\n\nWrong Input! The Gregorian Calendar Starts with Year 1.\n\n");
return 0;
}

while ( year > 0) {
if(((year%4==0)&&(year%100!=0))||(year%400==0))
printf("\n\n %d is a leap year.\n\n",year);
else
printf("\n\n %d is not a leap year.\n\n",year);
return 0;
}}

Method 3: Find the leap years between a given year range
#include<stdio.h>
int main(){

int year;
int min_year,max_year;
printf("\n\n Enter the lowest year: ");
scanf("%d",&min_year);
printf("\n\n Enter the highest year: ");
scanf("%d",&max_year);

if (( min_year < 1)||(max_year <1)) {
printf("\n\nWrong Input! The Gregorian Calendar Starts with Year 1.\n\n");
return 0;
}

if ( min_year > max_year) {
printf("\n\n Wrong Input!\n\n");
return 0;
}
printf("\n\n Leap years in the given range are: ");

for(year = min_year;year <= max_year; year++){
if(((year%4==0)&&(year%100!=0))||(year%400==0))
printf("%d ",year);
}
printf("\n\n");
return 0;
}

Popular posts from this blog

C++ Program To Implement Bank Management System.

#include<iostream> #include<fstream> #include<cctype> #include<iomanip> #include <cstdlib> using namespace std; class account { int acno; char name[50]; int deposit; char type; public: void create_account(); //function to get data from user void show_account() const; //function to show data on screen void modify(); //function to add new data void dep(int); //function to accept amount and add to balance amount void draw(int); //function to accept amount and subtract from balance amount void report() const; //function to show data in tabular format int retacno() const; //function to return account number int retdeposit() const; //function to return balance amount char rettype() const;  //function to return type of account }; void account::create_account() { cout<<"\nEnter The Account No. : "; cin>>acno; cout<<"\n\nEnter The Name Of The Account Holder : "; cin.ig...

C Program To Check Whether A Number Is Palindrome Or Not.

This program takes an integer from user and the integer is reversed. If the reversed integer is equal to the integer entered by user then that number is a palindrome. If not that number is not a palindrome.   #include <stdio.h> int main()  { int num, temp, remainder, reverse = 0; printf("Enter an integer: "); scanf("%d", &num); /*  original number is stored at temp */ temp = num; while (num > 0)  { remainder = num % 10; reverse = reverse * 10 + remainder; num /= 10;   }

Introduction To Algorithms, 3rd Edition

Before there were computers, there were algorithms. But now that there are computers, there are even more algorithms, and algorithms lie at the heart of computing. This book provides a comprehensive introduction to the modern study of computer algorithms. It presents many algorithms and covers them in considerable depth, yet makes their design and analysis accessible to all levels of readers. In this book, the authors tried to keep explanations elementary without sacrificing depth of coverage or mathematical rigor. Each chapter presents an algorithm, a design technique, an application area, or a related topic. Algorithms are described in English and in a pseudocode designed to be readable by anyone who has done a little programming. The book contains 244 figures — many with multiple parts — illustrating how the algorithms work. It also includes careful analysis of the running times of all algorithms. In this third edition, the entire book once again updated including changes cove...

C Interview Questions And Answers - Part 5.

What will be output of the following program? #include<stdio.h> int main() { int a = 2, b = 7, c = 10; c = a == b; printf("%d",c); return 0; } Output: 0 == is a relational operator which returns only two values. 0: If a == b is false 1: If a == b is true Since a = 2 and b = 7, so a == b is false, thus c = 0 What will be output of following program? #include<stdio.h> #include<string.h> int main() { char *ptr1 = NULL; char *ptr2 = 0; strcpy(ptr1," c"); strcpy(ptr2,"questions"); printf("\n%s %s",ptr1,ptr2); return 0; } Output: Run time error.  W e cannot assign any string constant in null pointer by strcpy function.