|
Führen der Strukturen zu den Funktionen in C
Strukturen können als Parameter zu einer Funktion, gerade als irgendwelche der grundlegenden Datenarten geführt werden. Das folgende Beispiel benutzt eine benannte Struktur Datum, das wird überschritten zu einer isLeapYear Funktion, um festzustellen hat, wenn das Jahr ein Schaltjahr ist.
Normalerweise würdest du nur den Tageswert führen, aber die vollständige Struktur wird geführt, um das Führen der Strukturen zu den Funktionen zu veranschaulichen.
#include <stdio.h>
#include <string.h>
struct month
{
char *name;
char *abbreviation;
int days;
} month_details[] =
{
"Junk", "Junk", 0,
"January", "Jan", 31,
"February", "Feb", 28,
"March", "Mar", 31,
"April", "Apr", 30,
"May", "May", 31,
"June", "Jun", 30,
"July", "Jul", 31,
"August", "Aug", 31,
"September", "Sep", 30,
"October", "Oct", 31,
"November", "Nov", 30,
"December", "Dec", 31
};
struct date
{
int day;
int month;
int year;
};
int isLeapYear(struct date d);
int main()
{
struct date d;
printf("Enter the date (eg: 11/11/1980): ");
scanf("%d/%d/%d", &d.day, &d.month, &d.year);
printf("The date %d %s %d is ", d.day,
month_details[d.month].name, d.year);
if (isLeapYear(d) == 0)
printf("not ");
puts("a leap year");
return 0;
}
int isLeapYear(struct date d)
{
if ((d.year % 4 == 0 && d.year % 100 != 0) ||
d.year % 400 == 0)
return 1;
return 0;
}
Und die Durchführung des Programms ist, wie folgt:
Enter the date (eg: 11/11/1980): 9/12/1980
The date 9 December 1980 is a leap year |
|
|