• ベストアンサー

printf("%lf",5/3); は 0.000000 ?

atsushifxの回答

  • ベストアンサー
  • atsushifx
  • ベストアンサー率50% (9/18)
回答No.1

printf("%lf",5/3) の 5/3 は整数の割り算となっています。 5.0のように実数を使ってみてください

Caryo_t
質問者

お礼

ありがとうございます! なるほど、整数を使ったからなのですね。 よくわかりました。ありがとうございました。

関連するQ&A

  • printf()関数の括弧を二重にして、printf((~~~))とし

    printf()関数の括弧を二重にして、printf((~~~))として コンパイル/実行すると、実行時セグメンテーション違反が発生します。 コンパイル時には警告も発生しますが、このセグメンテーション違反が なぜ起こるのか理由がよくわかりません。ご回答いただけるとありがたいです。 以下、サンプルコードと実行例です。よろしくお願いいたします。 ---mytest.c---- 1 #include <stdio.h> 2 3 int main(void){ 4 5 //printf("test:%d", 1)ではもちろんコンパイル/実行に成功する。 6 printf(("test:%d", 1)); 7 return 0; 8 } 【コンパイル/実行結果/gccバージョン】 #gcc main.c main.c:6:警告:passing argument 1 of printf makes pointer from integer without a cast #./a.out セグメンテーション違反です # gcc --version gcc (GCC) 4.1.2 20070925 (Red Hat 4.1.2-27) ・ ・

  • C++でprintfが使えない?

    学校の授業で「C言語を使ってある計算をせよ」というレポートが出ました。 Borland C++ Compiler 5.5無償版をインストールしました。 そしてWindowsXPのコマンドプロンプトでファイルを作り、udon.cppとしました。 C言語を使うのは久しぶりだったのでウォーミングアップとして簡単なプログラムを作っていこうと思い次のようなプログラムを組みました。 #include<stdio.h> main() { double x; x==3.22; printf("per= %lf\n",x); return 0; } そしてbcc32 udon.cppとしたのですが per=3.22 とは表示されずに Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland udon.cpp: Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland としか表示されないのです! 何回やってもこうです。何がいけないのでしょうか? あと、あまり関係ないかもしれませんがレポートに必要なのでグラフィックス ライブラリ GLIBW32 というものもDLし設定してます。 どなたか教えていただけると幸いです。

  • printf() だけで文字列を表示できる??

    1: int printf(char *, ...); 2: main() 3: { 4: printf("Hello, world.\n"); 5: } C で書かれた上のプログラムが正常にコンパイルでき、しかもHello, world. と表示することが理解できません。どなたか教えていただけないでしょうか。 1行目でprintf のプロトタイプ宣言を書き、その実体は書いていません。これをコンパイルしたとき、「printf() は知らない」と言われると思いましたが、そうはならず、Hello, world. を表示しました。 また、1行目の関数宣言の引数を変更すると、「ビルトイン関数と型が一致しない」と言われます。その「ビルトイン関数」というのは文字通りビルトインされていて任意に使用できるようになっているのでしょうか。 コンパイラはgcc version 3.4.4 です。

  • WindowsでコンパイルできるがUNIXではできない

    下記のプログラムは、2^-0.94を計算するものです。 このプログラムはwindows2000のマシンでコンパイルできるのですが、UNIXのマシンだと Unresolved text symbol "pow" というエラーがでてコンパイルできません。 UNIXのマシンは「cc ファイル名」でコンパイルを実行します。 どうすればコンパイルできるようになるのでしょうか。お手数ですが、教えてください。よろしくお願いします。 ※windows2000マシンのコンパイラ:Borland C++ Compiler 5.5 #include <stdio.h> #include <math.h> int main() { int a; double b,c; a=2; b=-0.94; c=pow(a,b); printf("%lf\n",c); return 0; }

  • 初心者

    #include <stdio.h> main() {     printf("hello,world\n"); } と初歩のプログラムをコンパイルしたのですが 「関数は値を返すべき(関数 main)」とでます 本見て試しに書いたのでどこが間違ってるのかわかりません。 よろしければ教えてください。。 使用しているコンパイラはborland C++ Turbodebu です

  • C言語で乱数がうまく効きません。下記のソースでコンパイルして実行すると

    C言語で乱数がうまく効きません。下記のソースでコンパイルして実行すると結果が130固定となってしまいます。 #include <stdio.h> #include <stdlib.h> int main(void){ int x; x = rand(); printf("%d",x); return 0; } 使っているコンパイラはBorland C++ 5.5.1です。何か間違いでもあるのでしょうか?よろしくお願いします。

  • 初めてのプログラミング

    学校の授業でC言語(C++ではありません)を勉強することになりました 学校ではvisual c++ 6.0を使用しています。 自宅のPCにも全く同じ物をDLしようとしましたがありませんでした。 そこでいろいろ調べてみて エディタ:CPad コンパイラ:Borland C++ Compiler をDLしてインストールしました。 エディタは問題なく使用できるのですがコンパイラをうまく使うことが出来ない為、実行も出来ません #include <stdio.h> int main(void) { 本文・・・ return(0); } って感じにエディタに記述して、拡張子を.cにして保存 その後コンパイルしようとしても出来ず・・・ もしかしてBorland C++ Compiler のコンパイラではC言語はコンパイル出来ないのでしょうか? 調べてもよくわからないので教えていただけないでしょうか? お願いします

  • Borland C++を利用しているのですが、簡単なプログラムが実行できません。

    Borland C++を利用しているのですが、簡単なプログラムが実行できません。 以下のようなプログラムをコンパイルして実行しようとしたのですが... #include <stdio.h> void main(void) { int i,j,k; i=1; j=2; k=i+j; printf( "k=%d,k); } Borland C++は、初めて使うのですが、C言語の勉強には使えないのでしょうか? もし使えるなら、どのようにすればよいのでしょうか?

  • BCC Developerについて。

    Borland C++ Compiler、BCC Developerを使って #include <stdio.h> void main(){ printf("Hello C world.\n"); } をメイクしてみたのですが、 インクルードファイル 'stdio.h' をオープンできない 、と表示されコンパイルできませんでした。 環境設定は、コンパイラにbbc32.exeを指定すればいいだけなんでしょうか?よろしくお願いします。

  • 簡単なコンパイルができない。

    ごく簡単なコンパイルができません・・。 #include<stdio.h> int main(){ int i; i = 1; printf("%d" , i); return(0); } でコンパイルすると Borland C++ 5.5.1 for Win32 Copyright (c) 1993,2000 Borland C:\TM-C\c\sam.c: 警告 W8065 C:\TM-C\c\sam.c 5:プロトタイプ宣言のない関数'printf'の呼び出し(関数 main) Turbo Incremental link 5.00 Copyright (c) 1997,2000 Borland Fatal: ファイル C0X32.PBJ が開けません と表示されてコンパイルできません・・。 プロトタイプ宣言ってこの場合いらないんじゃ・・。 どなたか教えてください:;