当前位置:网站首页>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;
}边栏推荐
猜你喜欢

【着色器实现Glow可控局部发光效果_Shader效果第十三篇】

Flink的Exactly-Once、状态机制、watermark机制

【Shell】3万字图文讲解带你快速掌握shell脚本编程

C语言版本和GCC版本

1066 Root of AVL Tree // AVL平衡二叉搜索树模板

excel高级绘图技巧100讲(二十一)- Excel层叠柱形图

Nacos与Eureka的区别

解读 refresh 十二步骤

El - tree to set focus on selected highlight highlighting, the selected node deepen background and change the font color, etc

解决登录vCenter提示“当前网站安全证书不受信任“
随机推荐
IEEE RAL投初稿
信息学奥赛一本通T1453:移动玩具
El - table column filter functions, control columns show and hide (effect and easy to implement full marks)
重量级大咖来袭:阿里云生命科学与智能计算峰会精彩内容剧透
信息学奥赛一本通T1454:山峰和山谷
多线程可见
unity 摄像机旋转拖拽缩放场景
mongodb的shell脚本
jvm 面试题
torch.nn.modules.activation.ReLU is not a Module subclass
【着色器实现Glow可控局部发光效果_Shader效果第十三篇】
解决登录vCenter提示“当前网站安全证书不受信任“
请手撸5种常见限流算法!面试必备
链表之打基础--基本操作(必会)
pt-online-schema-change工具使用的一次
mysql or语句的优化
Chrome configuration samesite=none method
pyspark---低频特征处理
Sqoop 导入导出 Null 存储一致性问题
一篇文章教你写扫雷(c语言基础版)