重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

3×3行列を定義してその行列式を計算するというプログラムを
作ろうと思っていろいろ試しています。
そこでわからないことが出てきたので質問させてください。
次のようなプログラムを書き、コンパイルしました。
#include <stdio.h>

int main(void){
int i;
int k;
double x[3][3];
double det;

for(k=0;k<3;k++){
for(i=0;i<3;i++){
scanf("%f",&x[k][i]);
}
}

det=x[0][0]*x[1][1];
printf("%f",det);

return 0;
}
これで
すべてのx[][]9個全部に0.9と代入してもとなぜか
detの結果として表示されるものが
「-8567200000000000000.00000」等となってしまいます。
コンパイルは通ってエラーは出ません。
なぜだかおわかりになられる詳しい方おりましたら、アドバイスいただけたらと思います。よろしくお願いいたします。

A 回答 (1件)

double型に対する、scanfの書式指定子は%fではなく%lf。



printfの方は%fで間違ってない。
    • good
    • 0
この回答へのお礼

初歩的なミスでした。ありがとうございました!

お礼日時:2009/06/16 22:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!