头哥c语言利用循环和数组判断这一天是这一年的第几天
时间: 2023-06-01 17:08:04 浏览: 58
您好!这是一个技术问题,可以回答。以下是利用循环和数组判断一年中某一天是第几天的 C 语言代码:
```
#include <stdio.h>
int main() {
int month, day, year, i, sum = 0;
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 == 0 && year % 100 != 0) || year % 400 == 0) {
days[1] = 29; // 闰年二月份有 29 天
}
for (i = 0; i < month - 1; i++) {
sum += days[i];
}
sum += day;
printf("%d 年 %d 月 %d 日是该年的第 %d 天。\n", year, month, day, sum);
return 0;
}
```
其中,days 数组保存了每个月的天数,如果是闰年,则将二月份的天数改为 29。通过循环累加前面月份的总天数,再加上当前月份的天数,即可得出该天是该年的第几天。
相关问题
用c语言用循环和数组实现输入某年某月某日,判断这一天是这一年的第几天
好的,我可以回答这个问题。以下是示例代码:
```
#include <stdio.h>
int main()
{
int year, month, day, daysInYear = 0, daysInMonth = 0, totalDays = 0;
int monthDays[12]={31,28,31,30,31,30,31,31,30,31,30,31}; //每个月有多少天
//输入年月日
printf("请输入年份:");
scanf("%d", &year);
printf("请输入月份:");
scanf("%d", &month);
printf("请输入日期:");
scanf("%d", &day);
//判断闰年,如果是闰年2月份天数加1
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
monthDays[1]++;
}
//计算这一年过去了多少天
for(int i = 0; i < month - 1; i++) {
daysInYear += monthDays[i];
}
daysInYear += day;
//计算这一月过去了多少天
daysInMonth = day;
//输出结果
printf("%d年%d月%d日是这一年的第%d天\n", year, month, day, daysInYear);
return 0;
}
```
只要输入年月日,程序就会自动计算出这一天是这一年的第几天。
c语言判断日期是这一年的第几天
这段代码可以用来判断输入的日期是这一年的第几天。首先通过scanf函数获取输入的年月日,然后通过switch语句计算出该日期之前整月的天数,再加上当月的天数。最后,如果该年是闰年并且该日期在2月29日之后,还需要再加上1天。最终输出该日期是这一年的第几天。
代码如下:
```
int main() {
int y,m,d;
int days = 0;
printf("请输入一个日期:");
scanf("%d/%d/%d",&y,&m,&d);//年月日用/隔开。
switch(m)
{
case 12: days += 30;
case 11: days += 31;
case 10: days += 30;
case 9: days += 31;
case 8: days += 31;
case 7: days += 30;
case 6: days += 31; case 5: days += 30;
case 4: days += 31;
case 3: days += 28;
case 2: days += 31;
case 1: days += d; //此次同时加上当月天数
}
//判断是否为闰年
if( m > 2 && ((y%4==0&&y%100!=0)||y%400==0))
days += 1;
printf("%d年%d月%d日是这一年的第%d天!\n", y,m,d,days);
return 0;
}
```