我試圖使用電子工作時的微積分自動化。不幸的是,好像我的代碼不工作,因爲所有的結果都是0.000000(見下文)。函數沒有給出有效的輸出(Visual Studio 2010上的C)
這是我已經試過: - 雙變量或INT - 刪除了微積分部分,並嘗試從輸入 得到輸出 - scanf_s和scan_f。
這些都沒有工作。奇怪的是printf在最後甚至無法打印base_v(例如)。
下面的代碼本身:
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
#include "math.h"
int _tmain(int argc, _TCHAR* argv[])
{
// variable declaration
double base_r, mod_r, base_v, mod_v=0;
double coeff=1;
int asdf=1;
// welcome message
printf("vMod calculator\n");
printf("Please enter resistances in Ohms and voltages in Volts\n");
// retrieve info about vmod
printf("Enter base resistance\n");
scanf_s("%f", &base_r);
printf("Enter modified resistance\n");
scanf_s("%f", &mod_r);
printf("Enter base voltage\n");
scanf_s("%f", &base_v);
// calculus of modified voltage
coeff=asdf*((1/base_r)+(1/mod_r));
mod_v=base_v*base_r*coeff;
// results
printf("Base voltage: %f \n", &base_v);
printf("Base resistance: %f \n", &base_r);
printf("Modified voltage: %f \n", &mod_v);
printf("Modified resistance: %f \n", &mod_r);
system("pause");
return 0;
}
如果你不懂微積分,請參考下面的圖片:http://pbrd.co/1g6KWLp
感謝
我試過沒有'&',現在我得到了四個「-92559604647977569000000000000000000000000000000000000000000000.000000」。 – Dreadlockyx
我對windows'scanf_s'不太熟悉,但我知道'scanf'希望'%lf'作爲double的說明符。也許你可以在你的'scanf_s'調用中使用浮點數或使用'%lf'來試試這個。 – Pankrates
就是這樣。謝謝 ! – Dreadlockyx