c语言求分数化,C语言求分数化简

本文目录一览:

请问在C语言中分数怎么表示啊,即10/9

首先10/9是表达式,但是在C语言中没有表示分数的形式,也就是当要以这种形式给出的时候C已经帮运算出结果了。所以你可以选择两种表达方式。

1、使用字符串,在使用使用时在转化一下。

2、使用小数,就是1.1111…这种,申请一个Double型来储存。

字符串就是 10/9 这种  char fenshu[]=”10/9″;当要使用的时候,还要再次转换成Double型。所以说,想要的分数形式只是一个外表没实际用处。

扩展资料:

字符串在存储上类似字符数组,它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。

通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。

参考资料来源:百度百科-字符串

C语言 分数化小数

没记错的话好像是汝佳的书上的习题……

主要就是用数组模拟手工除法,事实上我认为这道题按书上的进度有点超前了。

这题目要注意的问题还是比较多的,比如整除要补0,四舍五入要进位之类的……比较麻烦。

模拟算法:

a/b 得出除的数,存入数组

a=a%b*10 得出下一位除的数

循环,然后四舍五入,要进位进位即可

比如a=1 b=6

1/6=0 存入数组

1%6=1

a=1*10=10

10/6=1 存入数组

10%6=4

a=4*10=40

40/6=6 存入数组

……………………………………以此类推

如何用C语言,实现简单的分数化简

/*

Note:Your

choice

is

C

IDE

*/

//如何实现简单分数的化简

#include

“stdio.h”

//只要找出最大的因子就行了

辗转相除法

int

gcd(int

n,int

m)

{

int

temp,r;

//把大的数放在n里面

if(nm)

{

temp=n;

n=m;

m=temp;

}

while(m!=0)

{

r=n%m;

n=m;

m=r;

}

return

n;

}

void

main()

{

int

a,b;//a是分子

b是分母

printf(“please

input

a

and

b:”);

scanf(“%d%d”,a,b);

printf(“%d/%d”,a/gcd(a,b),b/gcd(a,b));

}

求加分

c语言,怎么实现对分数的加减乘除等等的运算

定义一个数据结构,可以是一个长度2的数组,也可以是一个struct,下面以数组为例

定义两个长度2的数组 a[2],b[2],分子分别保存在a[0],b[0],分母分别保存在a[1],b[1](负数的话,符号同分子一起)

乘:分母,分子分别相乘;除:乘以倒数(调换乘数的分子分母);然后约分(涉及最大公约数算法,可百度)

加减:分母需要相同,涉及最小公倍数算法(可百度)

以上思路和人工计算的方式相同,只是用c语言“翻译”一下

另外提供一个思路,直接计算结果,然后从无限循环小数转化成分数形式

c语言 分数化小数

因为o是double型,o=m/n;本来就不够精确吧

#include stdio.h

int main()

{

int a, b, c;

scanf(“%d%d%d”, a, b, c);

//整数部分

int zs = a / b;

//小数部分

a = a – zs * b;

int xs[101];

for(int i=0; i101; i++)

{

a = a * 10;

xs[i] = a / b;

a = a – xs[i] * b;

}

//处理四舍五入

if(c  1)

{

if(xs[0] = 5) zs++;

}

else

{

if(xs[c] = 5) xs[c-1]++;

for(int i=c-1; i0; i–)

{

xs[i-1] += xs[i] / 10;

xs[i] %= 10;

}

zs += xs[0] / 10;

xs[0] = xs[0] % 10;

}

//输出

if(c  1) printf(“%d”, zs);

else

{

printf(“%d.”, zs);

for(int i=0; ic; i++) printf(“%d”, xs[i]);

}

return 0;

}

如何用C语言,实现简单的分数化简

找分母分子的最大公约数,然后同除以这个数

#includestdio.h

int gcd(int a,int b)

{

return b==0?a:gcd(b,a%b);

}

int main()

{

int x,y;

while(scanf(“%d/%d”,x,y)!=EOF)

{

if(y==0)

{

printf(“分母不能为0\n”);

continue;

}

int c=gcd(x,y);

x/=c;

y/=c;

printf(“%d/%d\n”,x,y);

}

return 0;

}

原创文章,作者:RMCB,如若转载,请注明出处:https://www.506064.com/n/134613.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
RMCBRMCB
上一篇 2024-10-04 00:07
下一篇 2024-10-04 00:07

相关推荐

  • AES加密解密算法的C语言实现

    AES(Advanced Encryption Standard)是一种对称加密算法,可用于对数据进行加密和解密。在本篇文章中,我们将介绍C语言中如何实现AES算法,并对实现过程进…

    编程 2025-04-29
  • 学习Python对学习C语言有帮助吗?

    Python和C语言是两种非常受欢迎的编程语言,在程序开发中都扮演着非常重要的角色。那么,学习Python对学习C语言有帮助吗?答案是肯定的。在本文中,我们将从多个角度探讨Pyth…

    编程 2025-04-29
  • Python被称为胶水语言

    Python作为一种跨平台的解释性高级语言,最大的特点是被称为”胶水语言”。 一、简单易学 Python的语法简单易学,更加人性化,这使得它成为了初学者的入…

    编程 2025-04-29
  • OpenJudge答案1.6的C语言实现

    本文将从多个方面详细阐述OpenJudge答案1.6在C语言中的实现方法,帮助初学者更好地学习和理解。 一、需求概述 OpenJudge答案1.6的要求是,输入两个整数a和b,输出…

    编程 2025-04-29
  • Python按位运算符和C语言

    本文将从多个方面详细阐述Python按位运算符和C语言的相关内容,并给出相应的代码示例。 一、概述 Python是一种动态的、面向对象的编程语言,其按位运算符是用于按位操作的运算符…

    编程 2025-04-29
  • Python语言由荷兰人为中心的全能编程开发工程师

    Python语言是一种高级语言,很多编程开发工程师都喜欢使用Python语言进行开发。Python语言的创始人是荷兰人Guido van Rossum,他在1989年圣诞节期间开始…

    编程 2025-04-28
  • Python语言设计基础第2版PDF

    Python语言设计基础第2版PDF是一本介绍Python编程语言的经典教材。本篇文章将从多个方面对该教材进行详细的阐述和介绍。 一、基础知识 本教材中介绍了Python编程语言的…

    编程 2025-04-28
  • Python语言实现人名最多数统计

    本文将从几个方面详细介绍Python语言实现人名最多数统计的方法和应用。 一、Python实现人名最多数统计的基础 1、首先,我们需要了解Python语言的一些基础知识,如列表、字…

    编程 2025-04-28
  • Python作为中心语言,在编程中取代C语言的优势和挑战

    Python一直以其简单易懂的语法和高效的编码环境而著名。然而,它最近的发展趋势表明Python的使用范围已经从脚本语言扩展到了从Web应用到机器学习等广泛的开发领域。与此同时,C…

    编程 2025-04-28
  • Python基础语言

    Python作为一种高级编程语言拥有简洁优雅的语法。在本文中,我们将从多个方面探究Python基础语言的特点以及使用技巧。 一、数据类型 Python基础数据类型包括整数、浮点数、…

    编程 2025-04-28

发表回复

登录后才能评论