2016-03-20 7 views
0

これを返すには、CプログラムCプログラム - ダブルゼロ

#include <stdio.h> 
#include <stdlib.h> 

int main (void){ 

    double voltage, resistance; 
    printf("Enter your Voltage: "); 
    scanf("%f", &voltage); 
    printf("Enter your Resistance: "); 
    scanf("%f", &resistance); 
    double amps = voltage/resistance; 
    printf("With voltage %f and Ohm %fohms, amps is equal to %f \n", voltage, resistance, amps); 
    return 0; 
} 

はなぜ0.00の値を返すの電圧と抵抗の変数ですか?

+0

ありがとうございました。「l」を追加することについて説明してください。 – Vbobo

+0

'scanf()'のRTFMが好きかもしれません:http://www.iso-9899.info/n1570.html#6.2.5p28 – alk

+0

あなたのコンパイラは、書式指定子と引数の型の間の不一致について警告していたはずです合格。警告レベルを上げない場合。警告を深刻に受けなさい。 – alk

答えて

2

scanfには%lfを使用してください。

これは私のための素晴らしい働い:scanf (and family)については

#include <stdio.h> 
#include <stdlib.h> 

int main (void){ 

double voltage, resistance; 
printf("Enter your Voltage: "); 
scanf("%lf", &voltage); 
printf("Enter your Resistance: "); 
scanf("%lf", &resistance); 
double amps = voltage/resistance; 
printf("With voltage %f and Ohm %fohms, amps is equal to %f \n", voltage, resistance, amps); 
return 0; 
} 
3

をフォーマット"%f"はあなたが"%lf"のようにフォーマットプレフィックスlを持っている「長い」floatが必要doubleを取得するには、floatためです。