2017-01-30 22 views
0

鏈接:http://imgur.com/a/1A0mD 我輸入的值,但輸出不工作,即使我調試後。這個問題詢問用戶庫侖和電壓,我的程序「應該」計算庫侖以及它的總和(假設它是連續的)。程序問題不解決等效電容(5)串聯。

#include <stdio.h> 
typedef struct 
{ 
double q; // charge on the capacitor 
double v; // voltage 
} CAPACITOR; 
// Structure for 5 cpacitors in series 

typedef struct 
{ 
CAPACITOR c1; 
CAPACITOR c2; 
CAPACITOR c3; 
CAPACITOR c4; 
} CAPACITORS_IN_SERIES; 
double equivalentCapacitance(CAPACITORS_IN_SERIES); 
void main(void) 
{ 

CAPACITORS_IN_SERIES serCaps; 
double eqCapacitance; 
// Get input from the user 
printf("Please give the charge (Coulombs) and voltage (Volts) for Capacitor    1: \n"); 
scanf("%lf%lf",&serCaps.c1.q, &serCaps.c1.v); 

printf("Please give the charge (Coulombs) and voltage (Volts) for Capacitor 2: \n"); 
scanf("%lf%lf",&serCaps.c2.q, &serCaps.c2.v); 

printf("Please give the charge (Coulombs) and voltage (Volts) for Capacitor 3: \n"); 
scanf("%lf%lf",&serCaps.c2.q, &serCaps.c3.v); 

printf("Please give the charge (Coulombs) and voltage (Volts) for Capacitor 4: \n"); 
scanf("%lf%lf",&serCaps.c4.q, &serCaps.c4.v); 
// Compute the equivalent capacitor 
eqCapacitance = equivalentCapacitance(serCaps); 

// Display results 
printf("Capacitors in series: \n"); 
printf("Charge (Coulombs)  Voltage (volts) Capacitance (F)\n"); 
printf(" Capacitor 1: %15.2e %15.2f %15.2e\n", 
serCaps.c1.q, serCaps.c1.v, serCaps.c1.q/serCaps.c1.v); 
printf(" Capacitor 2: %15.2e %15.2f %15.2e\n", 
serCaps.c2.q, serCaps.c2.v, serCaps.c2.q/serCaps.c2.v); 
printf(" Capacitor 3: %15.2e %15.2f %15.2e\n", 
serCaps.c3.q, serCaps.c3.v, serCaps.c3.q/serCaps.c3.v); 
printf(" Capacitor 4: %15.2e %15.2f %15.2e\n", 
serCaps.c4.q, serCaps.c4.v, serCaps.c4.q/serCaps.c3.v); 
printf("Equivalent capacitance: %.2e\n",eqCapacitance); 
} 

double equivalentCapacitance(CAPACITORS_IN_SERIES sCaps) 
{ 
// Variable declations 
double eqCap; // Equivalent capacitance 
// Instructions 
eqCap = sCaps.c1.v/sCaps.c1.q; // set to 1/C1 
eqCap = eqCap + sCaps.c2.v/sCaps.c2.q; // Adds 1/C2 
eqCap = eqCap + sCaps.c3.v/sCaps.c3.q; // Adds 1/C3 
eqCap = eqCap + sCaps.c4.v/sCaps.c4.q; // Adds 1/C4 
eqCap = 1/eqCap; // sets to 1/(1/C1 + 1/C2 ...) 
return(eqCap); 
} 
+0

關於當前結果,您不滿意的是什麼?如果你只知道「這段代碼不起作用」,那麼你的問題對於StackOverflow來說太簡單了。請編輯您的問題以更具體,以便我們可以嘗試幫助您找到答案。 –

回答

2
printf("Please give the charge (Coulombs) and voltage (Volts) for Capacitor 3: \n"); 
scanf("%lf%lf",&serCaps.c2.q, &serCaps.c3.v); 
//      ==    ==    Oops 

複製和粘貼代碼不起作用。如果你發現自己在做,你做錯了。