一个实际问题,请教编程高手
给出算串联的,并联的你自己做下,真不会再找我。只要在case 2下添加代码就行了。#define N 50int sort(int *r[2],int n){int i,j,t;for(i=0;i<n-1;i++){ for(j=i+1;j<n;j++){ if(r[i][0]>r[j][0]){ t=r[i][0]; r[i][0]=r[j][0]; r[i][0]=t; } } } }main(){int i,j,k,n,flag,rem,need_R,rn;int r[N][2]={0};printf("\n1。
串联");printf("\n2。并联");scanf("%d",&flag);printf("\n用到电阻: ");scanf("%d",&need_R);k=0;for(i=0;i<N;i++){printf("Enter %d R(0 to stop): ",i+1);scanf("%d",&r[i][0]);if(r[i][0]==0)break;k++;}sort(r,k);printf("\nhere ok。
");getchar();for(i=0;i<k;i++){printf("%d R=%d ",i+1,r[i][0]);} printf("\nhere ok 2。");getchar(); printf("\n"); rem=need_R; n=k-1;switch(flag){case 1: while(need_R){ while(need_R<r[n][0]){ n--; if(n<0){ printf("\n 现有最小阻值超过应用电阻,无法匹配。
"); getchar(); exit(0); } } r[n][1]=need_R/r[n][0]; need_R=need_R-r[n][0]*r[n][1]; } break; case 2: /*并联代码*/ break; } printf("\n应用电阻%dR =",rem); rn=0; for(i=0;i<N;i++){ if(r[i][1]){printf(" %d %dR ",r[i][1],r[i][0]);rn+=r[i][1];}}printf("\ntotal %d 电阻。
",rn);getchar();}。
我要会做,不要分!
电阻知识都忘记了
答:你好! 我认为不需要过于具体复杂的算法。 因为水的重力作用,水面无论何时都是水平的。 而水桶为圆柱体,实际的体积是好求的。 画了一个草图,红色表示水存在的位置。...详情>>