习题 7.18 给出年、月、日,计算该日是该年的第几天。
计算 习题 给出 第几天
2023-09-14 09:06:56 时间
C程序设计(第四版) 谭浩强 习题7.18 个人设计
习题 7.18 给出年、月、日,计算该日是该年的第几天。
代码块:
方法1:(顺序结构)
#include <stdio.h>
int main()
{
int m[13], year, month, day, i, d, leap;
for (i=1; i<=12; i++){ //月份赋值
if (i==1||i==3||i==5||i==7||i==8||i==10||i==12)
m[i]=31;
else if (i!=2)
m[i]=30;
else
m[i]=0;
}
//输入年月日
printf("Input year:");
scanf("%d", &year);
printf("Input month:");
scanf("%d", &month);
printf("Input day:");
scanf("%d", &day);
//判断年份是否为闰年,同时判断2月的天数
if (year%4==0){
if (year%100==0){
if (year%400==0)
leap=1;
else
leap=0;
}
else
leap=1;
}
else
leap=0;
if (leap)
m[2]=29;
else
m[2]=28;
for (i=1, d=0; i<month; i++)
d+=m[i];
d+=day;
printf("Today is the No.%d day!\n", d); //输出结果
return 0;
}
方法2:(利用函数的模块化设计)
#include <stdio.h>
void date(int y, int m, int d); //定义天数判断函数
int main()
{
int year, month, day;
printf("Please enter Year Month Day: "); //输入年月日
scanf("%d %d %d", &year, &month, &day);
date(year, month, day); //调用天数函数
return 0;
}
//天数判断函数
void date(int y, int m, int d)
{
int mon[12], day_sum, i;
//以下是判断输入错误,重新输入
for (i=0; m<1||m>12||(m==2&&d>29)||d<1||d>31; i++){
printf("Error!\nPlease enter Year Month Day: ");
scanf("%d %d %d", &y, &m, &d);
}
//以下是月份天数赋值
for (i=0; i<12; i++){
if (i==1) ((!(y%4))&&y%100!=0)||!(y%400) ? mon[i]=29 : mon[i]=28;
else if (i==0||i==2||i==4||i==6||i==7||i==9||i==11) mon[i]=31;
else mon[i]=30;
}
for (i=0, day_sum=0; i<m-1; day_sum+=mon[i++]);
day_sum+=d;
printf("%d is No.%d day in %d\n", d, day_sum, y);
}
相关文章
- 云计算的概念
- Centos7安装部署openstack--nova计算服务(控制节点)
- SPSS详细教程:OR值的计算
- 数据分析的主要内容仍是结构化计算_数据分析师
- 读书笔记--SQL必知必会07--创建计算字段
- Open3D 计算点云坐标最值
- 外送类-间隔15分钟,计算事时间效果demo(整理)
- DataScience:机器学习中特征工程之WOE编码(离散变量编码/有监督)的简介、计算过程、案例应用之详细攻略
- BigData之Hadoop:Hadoop框架(分布式系统基础架构)的简介(两大核心【HDFS存储和MapReduce计算】)、深入理解、下载、案例应用之详细攻略
- 第十四届蓝桥杯集训——Set集合详讲(交集、差集、并集)计算
- 基于昇腾计算语言AscendCL开发AI推理应用
- 习题 3.3 购房从银行贷了一笔款d, 准备每月还款额为p, 月利率为r, 计算多少月能还清。设d为300000元,p为6000元,r为1%。对求得的月份取小数点后一位,对第2位按四舍五入处理。
- 习题 3.1 假如我国国民生产总值的年增长率为9%,计算10年后我国国民生产总值与现在相比增长多少百分比。
- 习题6.14 以m行n列二维数组为参数进行方法调用,分别计算二维数组各列元素之和,返回并输出所计算的结果。
- c#计算2个字符串的相似度
- 【FIFO】FIFO 最小深度计算