请教,C语言中怎么输出数的分数形式

Python018

请教,C语言中怎么输出数的分数形式,第1张

没有默认的分数形式

只能根据值

自己计算出分子和分母

然后

输出两个整型

比如

printf("%d/%d", a,b)

从浮点数转为分数是不精确的 要计算分数, 最好的方法 就是最初就按照分数计算和存储。

c语言里要输入输出分数,可以定义分子和分母均为整型,或长整型量。

然后按照分数的定义对其进行相关的运算,最后也是分别输出分子和分母。

例如,要计算一个分数乘以一个整数:

int a,b,k,c=0

printf("请输入一个分数:")

scanf("%d/%d",&a,&b)

printf("请输入要乘以几:")

scanf("%d",&k)

printf("%a/%b的%d倍是",a,b,k)

a*=k

if(a>=b)

{

c=a/b

a%=b

}

if(c>0)printf("%d ",c)

if(a>0)printf("%d/%b",a,b)

printf("\n")

switch里有三种写法,第一种就是每个单独写出来如:(这种如果数据多的话不推荐,比如这题)\x0d\x0aswitch(score) {\x0d\x0acase 90: case 91://...case 100:\x0d\x0a//优秀。。\x0d\x0abreak\x0d\x0acase 80:case 81:case 82: //...case 89:\x0d\x0a//中等。。\x0d\x0abreak\x0d\x0a}\x0d\x0a第二种就是进行缩小范围,如:(这种如果数据分布很有规律就用,比如这题)\x0d\x0aswitch(score/10) {\x0d\x0acase 10: case 9: //优秀..\x0d\x0abreak\x0d\x0acase 8: //中等\x0d\x0abreak\x0d\x0a}\x0d\x0a第三种是函数的写法,这适用于数据分布无规律而不能进行缩小范围时,假如90~96为优秀,97~100为特优秀的话,可以这样,如:(这种适用于数据分布无规律)\x0d\x0aint score_fun(int score)\x0d\x0a{\x0d\x0aif(score >= 97)\x0d\x0areturn 1\x0d\x0aif(score >= 90)\x0d\x0areturn 2\x0d\x0aif(score >= 80)\x0d\x0areturn 3\x0d\x0a}\x0d\x0a \x0d\x0a//....\x0d\x0a \x0d\x0aswitch(score_fun(score)) {\x0d\x0acase 1: //特优秀。。\x0d\x0abreak\x0d\x0acase 2: //优秀。。\x0d\x0abreak\x0d\x0acase 3: //中等。。\x0d\x0abreak\x0d\x0a}