C语言输入某年某月某日判断为当年的第几天(switch实例)

代码如下:

#include <stdio.h>
int main()
{
	int year, month, day, leap, sum;
	printf("请输入:");
	scanf("%d,%d,%d", &year, &month, &day);
	switch (month)
	{
	case 1:sum = 0;break;
	case 2:sum = 31;break;
	case 3:sum = 59;break;/*一月31天加平年28天等于59天*/
	case 4:sum = 90;break;
	case 5:sum = 120;break;
	case 6:sum = 151;break;
	case 7:sum = 181;break;
	case 8:sum = 212;break;
	case 9:sum = 243;break;
	case 10:sum = 273;break;
	case 11:sum = 304;break;
	case 12:sum = 331;break;
	default:printf("error\n");
	}
	sum = sum + day;
	if (year%400 == 0 || year%4 == 0 && year%100 != 0)/*判断闰年*/
		leap = 1;
	else
		leap = 0;
	if(leap == 1 && month>2)/*当是闰年,月份大于二时,才需要加一,为一月时,不需要加一*/
		sum = sum++;
	printf("为今年的%d\n",sum);
	return 0;
}

第二种方法:

#include <stdio.h>
int main()
{
	int year, month, day, sum=0;
	scanf("%d%d%d", &year, &month, &day);
	switch (month-1)
	{
	case 11:sum = sum + 30;
	case 10:sum = sum + 31;
	case 9:sum = sum + 30;
	case 8:sum = sum + 31;
	case 7:sum = sum + 31;
	case 6:sum = sum + 30;
	case 5:sum = sum + 31;
	case 4:sum = sum + 30;
	case 3:sum = sum + 31;
	case 2:
		if (year%400 == 0 || year%4 == 0 && year%4 == 0)
			   sum = sum + 29;
		else
			sum = sum +28;
	case 1:sum = sum + 31;
	case 0:sum = sum + day;printf("今年的第%d天\n", sum);break;
	default:printf("error\n");
	}
	return 0;
}
  • 23
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: 可以使用C语言编写一个程序来输入某年某月某,并判断这一天是这一年的第几天。具体实现方法如下: 1. 首先,需要输入年、月、三个变量。 2. 然后,判断输入的年份是否为闰年。如果是闰年,则该年2月份有29天,否则只有28天。 3. 接着,根据输入的月份,计算出该月份之前的天数总和。 4. 最后,将该月份之前的天数总和加上输入期,即可得到这一天是这一年的第几天。 下面是一个示例代码: ``` #include <stdio.h> int main() { int year, month, day, sum = ; int days[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // 每个月份的天数 printf("请输入年、月、:\n"); scanf("%d%d%d", &year, &month, &day); // 判断是否为闰年 if ((year % 4 == && year % 100 != ) || year % 400 == ) { days[1] = 29; // 闰年2月份有29天 } // 计算该月份之前的天数总和 for (int i = ; i < month - 1; i++) { sum += days[i]; } // 加上输入期,即为这一天是这一年的第几天 sum += day; printf("%d年%d月%d是这一年的第%d天。\n", year, month, day, sum); return ; } ``` 运行程序后,输入年、月、,即可得到这一天是这一年的第几天。例如,输入2022年3月15,程序输出: ``` 2022年3月15是这一年的第74天。 ``` ### 回答2: C语言是一种广泛使用的编程语言,在计算机编程和软件开发中应用广泛。C语言可以实现很多实用的功能,比如输入某年某月某判断这一天是这一年的第几天。这种功能在时间计算和历应用中非常实用。 要实现这个功能,需要用到C语言的一些基本知识,如变量、输入输出等。具体实现步骤如下: 1. 首先,定义三个变量year、month、day,用来表示输入的年、月、。可以使用scanf函数从用户输入中获取这些值,例如: scanf("%d%d%d", &year, &month, &day); 2. 然后,需要判断输入的年份是否为闰年,因为闰年的二月份有29天,其它月份都是28天或者30天。判断闰年的方法是:能被4整除但不能被100整除,或者能被400整除的年份都是闰年。可以使用if语句进行判断,例如: if((year%4==0 && year%100!=0) || year%400==0) { //闰年处理 } else { //非闰年处理 } 3. 接着,需要计算输入期在这一年中的天数。可以定义一个变量days来表示天数,初始化为输入数。然后,通过循环计算天数,例如: for(int i=1; i<month; i++) { if(i==2) { //二月份 if(闰年) { days += 29; } else { days += 28; } } else if(i==4 || i==6 || i==9 || i==11) { //30天的月份 days += 30; } else { //31天的月份 days += 31; } } 4. 最后,输出计算结果。输出格式可以自己定义,例如: printf("%d年%d月%d是这一年的第%d天\n", year, month, day, days); 通过以上步骤,输入某年某月某,就可以判断这一天是这一年的第几天。这是C语言中常见的时间计算应用之一,也是C语言初学者需要掌握的基本知识之一。 ### 回答3: 题目要求我们输入某年某月某,然后判断这一天是这一年的第几天。 那么我们可以按照以下步骤来完成这个任务: 1. 首先,我们需要从用户那里获取输入期信息,经过处理,将其存储到变量中。可以使用scanf函数来实现: ``` int year, month, day; printf("请输入期,格式为yyyy-mm-dd:\n"); scanf("%d-%d-%d", &year, &month, &day); ``` 2. 接下来,我们需要判断输入的年份是否为闰年。闰年有以下两种情况: a. 能被4整除,但不能被100整除。 b. 能被400整除。 在C语言中可以这样实现: ``` int is_leap_year; if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { is_leap_year = 1; } else { is_leap_year = 0; } ``` 3. 确定闰年后,我们可以计算这一天是这一年的第几天。根据已知的期信息,我们需要计算出到该期为止,共经过了多少天。 对于该年,我们可以按照以下逻辑计算: a. 如果是1月份,该期就是该年的第几天。 b. 如果是其他月份,我们可以按照以下公式计算:该月之前所有月份的天数 + 当月天数。 对于该月份之前的所有天数,我们可以使用一个数组来保存,数组下标表示月份,数组值表示该月份之前所有月份的天数之和。并且需要注意2月份的天数,闰年和平年是不同的。 示例代码: ``` int days_of_month[13] = {0,31,59,90,120,151,181,212,243,273,304,334,365}; if (is_leap_year && month > 2) { days_of_month[2] = 60; } int days = days_of_month[month - 1] + day; ``` 4. 最后,我们需要输出得到的结果: ``` printf("%d年%d月%d是这一年的第%d天\n", year, month, day, days); ``` 综上所述,我们可以按照以上步骤来完成该题目的要求。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值