example1.c

来自「北大青鸟软件工程师ppt的学生用书源代码」· C语言 代码 · 共 103 行

C
103
字号
#include <stdio.h>
#include <stdlib.h>

/* 结构 date */
struct date
{
	int day; 
	int month;
	int year;
};
void month_nm(struct date *);
void main()
{
	struct date d1;
	printf("\n 以数字形式输入日期(年月日)\n");
	printf("\n 输入年(1900 - 2005):");
	scanf("%d", &d1.year);
	if(d1.year >= 1900 && d1.year <= 2005)
	{
		printf("\n 输入月: ");
		scanf("%d", &d1.month);
		if(d1.month>=1 && d1.month<=12)
		{
			if(d1.month==2)
			{
				printf("\n 输入日:");
				scanf("%d", &d1.day);
				if (d1.day >= 1 && d1.day <= 28)
				{
					/* 通过传递结构引用对函数 month_nm() 进行调用 */
					month_nm(&d1);
				}
				else
				{
					printf("\n无效日期,程序退出!\n");
					exit(0);
				}
			}
			else if(d1.month == 1 || d1.month == 3 || d1.month == 5|| d1.month == 7
			   || d1.month == 8 || d1.month == 10|| d1.month == 12)
			{
				printf("\n 输入日:");
				scanf("%d", &d1.day);
				if (d1.day >= 1 && d1.day <= 31)
				{
					/* 通过传递结构引用对函数 month_nm() 进行调用 */
					month_nm(&d1);
				}
				else
				{
					printf("\n无效日期,程序退出!\n");
					exit(0);
				}
			}
			else
			{
				printf("\n 输入日:");
				scanf("%d", &d1.day);
				if (d1.day >= 1 && d1.day <= 30)
				{
					/* 通过传递结构引用对函数 month_nm() 进行调用 */
					month_nm(&d1);
				}
				else
				{
					printf("\n无效日期,程序退出!\n");
					exit(0);
				}
			}
		}
		else
		{
			printf("\n无效的月份,程序退出!\n");
			exit(0);
		}
	}
	else
	{
		printf("\n无效的年份,程序退出!\n");
		exit(0);
	}
}

/* 函数 month_nm() */
void month_nm(struct date *d2)
{
   /* 二维数组存储月份的中文 */
   char month_name[][10] = {
							"一月",
							"二月",
							"三月",
							"四月",
							"五月",
							"六月",
							"七月",
							"八月",
							"九月",
							"十月",
							"十一月",
							"十二月"
						};
   printf("\n\n 日期是:%d 年 %s %d 日\n",d2->year, month_name[(d2->month) - 1], d2->day );
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?