1

このプログラムの 7 行目は「pay = prt(pay);」ではないでしょうか。double を必要とする param に int を渡しているため、コンパイル エラーまたは実行時エラーをスローするはずですか? dev-c++ で問題なくコンパイルし、両方の出力行でプログラムを実行しました。説明してください、ありがとう。

#include <stdio.h>
int prt(double b);
main ()
{
    int pay = 3;
    double tax = 2.2;
    pay = prt(pay);
    prt(tax);
}     

int prt(double b)
{
    b *= 2;
    printf("%.2lf\n", b);   
}
4

3 に答える 3

6

C は、この状況で異なる数値型の間で自動的に変換します。

C に似た言語での暗黙的な型変換 を参照してください。

于 2011-07-14T16:54:19.777 に答える
3

関数を宣言しましたが、何も返さず、戻り値の型も指定intしませんでした。mainどのコンパイラも、コードを拒否する権利の範囲内にあると思います。

于 2011-07-14T17:10:00.647 に答える
-1

サイズが小さいか等しいデータ型は、より大きなサイズに変換できます。

逆の場合: float から int への変換は切り捨て、つまり小数部分の削除を引き起こします。double を float にすると、桁の long int が int に丸められ、余分な上位ビットが削除されます。

于 2011-07-14T21:07:40.980 に答える