0

0.0として出てきます。もちろん入力番号が0でない限り、0以外の番号で出してほしいです。私はいくつかのことを試みました。これが現在のコードです。

#include <stdio.h>                                     /* Necessary header */
#include <stdlib.h>


int main()
{
    double Initial;
    double Post;

    printf("Enter a number with a decimal: ");
    scanf("%lf", &Initial);
    printf("Enter another number using the same format: ");
    scanf("%lf", &Post);

    ComputeMinimum(Initial, Post);
    ComputeMaximum(Initial, Post);

    printf("Of %1.1lf and %1.1lf ", Initial, Post);
    printf("the minimum is %1.1lf ", ComputeMinimum(Initial, Post));
    printf("and the maximum is %1.1lf.", ComputeMaximum(Initial, Post));

    return 0;
}

    double ComputeMaximum(double B, double A)
{
    return (A > B) ? A : B;
}

double ComputeMinimum(double a, double b)
{
    return (a < b) ? a : b;
}

私はすでに次のことを試しました。また、関数の戻り型を2倍にすることになっていますが、方法はわかりません。

int main()
{
    double Initial;
    double Post;

    printf("Enter a number with a decimal: ");
    scanf("%lf", &Initial);
    printf("Enter another number using the same format: ");
    scanf("%lf", &Post);

    double minimum = ComputeMinimum(Initial, Post);
    double maximum = ComputeMaximum(Initial, Post);

    printf("Of %1.1lf and %1.1lf ", Initial, Post);
    printf("the minimum is %1.1lf ", minimum);
    printf("and the maximum is %1.1lf.", maximum);

    return 0;
}
4

2 に答える 2

1

わかりません、それは私にとって完全にうまくいきます。

mainの前に関数宣言を追加する必要があるため、次のようになります。

#include <stdio.h>                                     /* Necessary header */
#include <stdlib.h>

double ComputeMinimum(double a, double b);
double ComputeMaximum(double a, double b);

int main()
{
....

次の質問ですが、これらの関数の戻り型はISdoubleなので、何も変更する必要はありません。問題は、関数プロトタイプがないと、コンパイラーはそれがになることを知らないdoubleため、を想定していることintでした。

コンパイラの警告を有効にしてください。これらは非常に役立ちます。常に注意深く読む必要があります。

于 2012-10-21T14:45:04.783 に答える
0

私にとってもそれはうまくいきました。つまり、出力を最大および最小で2倍にキャッチしている上記のプログラムです。プロトタイプの宣言についての上記の言及も正しいと思います。または、両方の関数の定義をメインプログラムの上に直接置くことができます。その場合、コンパイラのプロトタイプとしても機能するため、プロトタイプも必要ありません。

于 2012-10-21T15:11:03.947 に答える