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