![]() ![]() |
|
C趣味程序(二)(02)电阻计算 | |
作者:佚名 文章来源:不详 点击数 更新时间:2008/4/18 13:58:56 文章录入:杜斌 责任编辑:杜斌 | |
|
|
求如下图所示电路中A,B间的等效电阻r
算法分析如下: 把整个电路分为4级,从左至右逐级递推处理。 首先注意把电路中的电阻数据按顺序写入数组,最右端电阻在前,以后每级横向电阻在前,竖向电阻在后。第三级没有横向电阻,相应位置置数据0。最后,置两个-1作为数据的终止标志。 操作时r读入最右端电阻。进入i循环(预置20级),读入data[i],data[i+1]两个电阻,data[i]与右边等效电阻串联,然后与data[i+1]并联,根据电阻计算公式操作: r=r+data[i]; r=(r*data[i+1])/(r+data[i+1]); 当读入的data[i]为负时,即已计算完毕,退出循环等效电阻r 程序代码如下: #include<stdio.h> void main() { int i; double r; double data[]={25,4,13,50,3,0,15,17,31,-1,-1}; r=data[0]; for(i=1;i<=20;i+=2) { if(data[i]<0) break; r=r+data[i]; r=(r*data[i+1])/(r+data[i+1]); } printf("A,B间的等效电阻为:%.3f\n",(r*1000+0.5)/1000); } 程序运行结果如下: A,B间的等效电阻为:11.932 注意:本程序只适用于II形式的电路电阻计算。如果对应位置没有电阻,必须相应补0。同时在程序中循环体内判断data[i]<0 语句应安排在具体计算语句之前。否则将导致计算结果出错。 |
|
![]() ![]() |