C语言实现分数加法计算 按分子分母格式打印运算结果
C语言并联电阻分数格式输出实现
问题根源
现有代码中Parallel变量存储的是并联电路的电导值(即1/R总,单位S),直接打印该变量会输出纯小数形式的电导结果,无法满足1/等效电阻值的格式输出要求。
要实现目标格式,核心逻辑非常简单:既然电导值G=1/R总,那么等效电阻值R总=1/G,只要把算出来的R总填到固定格式1/XXX的分母位置即可。
具体修改要点
- 新增
double类型变量存储并联等效电阻,通过R_parallel = 1.0 / Parallel计算得到分母对应的电阻值(针对给出的三个电阻参数,计算值刚好为≈96.774194,和目标格式要求的数值完全匹配) - 计算倒数时统一使用
1.0作为分子,避免整数除法导致的类型转换异常 - 替换原有的纯小数打印逻辑,按固定分数格式拼接输出内容
修改后的可运行代码
#include <stdio.h> int main () { double R1 = 500.0, R2 = 200.0, R3 = 300.0; double series, Parallel, R_parallel; series = R1 + R2 + R3; Parallel = 1.0/R1 + 1.0/R2 + 1.0/R3; R_parallel = 1.0 / Parallel; // 计算并联等效电阻,作为分数格式的分母 printf("series: \n"); printf("%f Ohm + %f Ohm + %f Ohm = ", R1, R2, R3); printf("%f Ohm", series); printf("\n\nParallel: \n"); printf("1/%f Ohm + 1/%f Ohm + 1/%f Ohm = ",R1, R2, R3); printf("1/%f Ohm", R_parallel); // 按分数格式输出,替代原纯小数结果 return 0; }
运行输出示例
series: 500.000000 Ohm + 200.000000 Ohm + 300.000000 Ohm = 1000.000000 Ohm Parallel: 1/500.000000 Ohm + 1/200.000000 Ohm + 1/300.000000 Ohm = 1/96.774194 Ohm
补充说明:如果需要调整分母的小数保留位数,可以修改printf格式串里的
%f为指定精度,比如保留两位小数就写%.2f,对应输出1/96.77 Ohm,不需要改动核心计算逻辑。
内容的提问来源于stack exchange,提问作者Phantom
相关产品推荐
相关产品推荐

