只能根据值
自己计算出分子和分母
然后
输出两个整型
比如
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}