习题 9.1 定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问题。
2023-09-14 09:06:56 时间
C程序设计(第四版) 谭浩强 习题9.1 个人设计
习题 9.1 定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年问题。
代码块:
方法1:
#include <stdio.h>
#include <stdlib.h>
struct count_day
{
int year;
int month;
int day;
} dd={2018, 3, 28};
int main()
{
int i, m[12], sum;
for (i=0; i<6; i++)
i<=3 ? m[2*i]=31, m[2*i+1]=30 : m[2*i-1]=31, m[2*i]=30;
(!(dd.year%4)&&dd.year%100!=0)||!(dd.year%400) ? m[1]=29 : m[1]=28;
for (i=0, sum=0; i<dd.month-1; sum+=m[i++]);
printf("%d-%d-%d is No.%d days!\n", dd.year, dd.month, dd.day, sum+dd.day);
system("pause");
return 0;
}
方法2:
#include <stdio.h>
#include <stdlib.h>
struct Date{
int year;
int month;
int day;
};
void input(Date *d);
void print(Date *d);
int main()
{
Date *dd=(Date*)malloc(sizeof(Date));
input(dd);
print(dd);
system("pause");
return 0;
}
void input(Date *d)
{
printf("Please enter date: ");
scanf("%d %d %d", &d->year, &d->month, &d->day);
}
void print(Date *d)
{
int m[12], i, y, sum=0;
y=d->year;
(y%4==0&&y%100!=0)||y%400==0 ? m[1]=29 : m[1]=28;
for (i=0; i<12; i++){
if (i==1) continue;
else if (i==0||i==2||i==4||i==6||i==7||i==9||i==11) m[i]=31;
else m[i]=30;
}
for (i=0; i<d->month-1; sum+=m[i++]);
printf("The date is No.%d days!\n", sum+d->day);
}
相关文章
- 2022年英国伦敦量子计算峰会
- 【运筹学】线性规划数学模型 ( 单纯形法 | 第一次迭代 | 方程组同解变换 | 计算新单纯形表 | 计算检验数 | 入基变量选择 | 出基变量选择 )
- 【运筹学】线性规划 单纯形法 案例二 ( 第一次迭代 | 矩阵变换 | 检验数计算 | 最优解判定 | 入基变量 | 出基变量 )
- 【运筹学】线性规划 人工变量法 ( 人工变量法案例 | 初始单纯形表 | 检验数计算 | 入基变量 | 出基变量 )
- 「百图生科」再添虎将,国际机器学习大牛宋乐加入李彦宏生物计算军团
- Java使用BigDecimal进行高精度计算详解编程语言
- 两场比赛,AlphaGo表现出了哪些计算和智能 | 雷锋网公开课
- 如何用MySQL计算两点之间的距离?(mysql计算距离)
- 利用Oracle实现环比计算的方法(oracle中环比计算)
- 利用Redis提高访问效率实现高频计算(redis 高频访问计算)
- javascript小数计算出现近似值的解决办法
- Js时间间隔计算的函数(间隔天数)
- 自己写的Javascript计算时间差函数