C趣味程序(二)(02)电阻计算
文章作者 100test 发表时间 2007:03:10 17:34:04
来源 100Test.Com百考试题网
1.2.2 电阻计算
求如下图所示电路中A,B间的等效电阻r
![](/ncre2/Files/2006-8/30/854385504.gif)
算法分析如下:
把整个电路分为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
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 语句应安排在具体计算语句之前。否则将导致计算结果出错。