当前位置:网站首页>c现代方法16章基础
c现代方法16章基础
2022-08-03 06:22:00 【发狂的蜗牛】
练习题
6.
#include <stdio.h>
#include <stdlib.h>
struct time {
int hours;
int minutes;
int seconds;
};
struct time split_time(long total_seconds)
{
struct time ret;
ret.hours = total_seconds / 3600;
ret.minutes = (total_seconds - ret.hours * 3600) / 60;
ret.seconds = total_seconds - ret.hours * 3600 - ret.minutes * 60;
return ret;
}
int main()
{
struct time t1 = split_time(10000);
printf("hours: %ld minutes : %ld seconds : %ld\n",t1.hours,t1.minutes,t1.seconds);
system("pause");
return 0;
}
运行结果如下:
7.
#include <stdio.h>
struct fraction {
int numerator; //分子
int denominator;//分母
};
//为啥这个函数自己写出来,自己也貌有点不明白
int get_gcd(int m, int n)
{
if (n == 0)
{
return m;
}
return get_gcd(n,m % n);
}
struct fraction
simplify_fraction(struct fraction * f)
{
struct fraction ret;
int gcd = get_gcd(f->numerator,f->denominator);
ret.numerator = f->numerator / gcd;
ret.denominator = f->denominator / gcd;
return ret;
}
//(b)分数相加
struct fraction add(struct fraction * l,struct fraction * r)
{
struct fraction ret;
ret.numerator = l->numerator * r->denominator + l->denominator * r->numerator;
ret.denominator = l->denominator * r->denominator;
ret = simplify_fraction(&ret);
return ret;
}
//(c)分数相减
struct fraction subtraction(struct fraction * l, struct fraction * r)
{
struct fraction ret;
ret.numerator = l->numerator * r->denominator - l->denominator * r->numerator;
ret.denominator = l->denominator * r->denominator;
ret = simplify_fraction(&ret);
return ret;
}
//(d)把两个分数相乘
struct fraction multiply(struct fraction * l, struct fraction * r)
{
struct fraction ret;
ret.numerator = l->numerator * r->numerator;
ret.denominator = l->denominator * r->denominator;
ret = simplify_fraction(&ret);
return ret;
}
//(e)除法 略(和乘法类似)
int main()
{
//(a)
struct fraction f1;
f1.numerator = 1001;
f1.denominator = -7;
struct fraction sim_of_f1 = simplify_fraction(&f1);
printf("numerator:%d ,denominator: %d\n",sim_of_f1.numerator,sim_of_f1.denominator);
//(b)
struct fraction f2,f3;
f2.denominator = 3;
f2.numerator = 4;
f3.denominator = 5;
f3.numerator = 6;
struct fraction r2 = add(&f2,&f3);
printf("nume:%d,deno:%d\n",r2.numerator,r2.denominator);
//(c)
struct fraction r3 = subtraction(&f2,&f3);
printf("nume:%d,deno:%d\n", r3.numerator, r3.denominator);
//(d)
struct fraction r4 = multiply(&f2,&f3);
printf("nume:%d,deno:%d\n", r4.numerator, r4.denominator);
return 0;
}
边栏推荐
猜你喜欢
随机推荐
CISP-PTE Zhenti Demonstration
MySQL必知必会
1066 Root of AVL Tree // AVL平衡二叉搜索树模板
死锁的成因和对应的解决方案
Getting started with el-tabs (tab bar)
神经网络原理及代码实现
Spark 的架构与作业提交流程
el-table获取读取数据表中某一行的数据属性
Charles capture shows
solution uniapp 请求接口封装
请手撸5种常见限流算法!面试必备
MySQL日期和时间戳的转换
信息学奥赛一本通T1449:魔板
ISIJ 2022收官,中国初中生再展风采
Autowired注解与Resource注解的区别
贷中存量客户的价值挖掘与分类实现,试试这一重要的场景模型
信息学奥赛一本通T1450:Knight Moves
信息学奥赛一本通T1448:深搜的剪枝技巧 电路维修
关于Attention的超详细讲解
10 common data types in MySQL