0

配列の最大の float を見つけようとしているときに C で問題が発生していますが、最大の int は問題なく動作します。配列の長さを超えている可能性があると思いますが、それがどのように可能かわかりません。

int largestInt(int array[], int length){
    int max = array[0];
    int i;

    for( i=1; i<length; i++){
         if(array[i] > max){
               max = array[i];
         }
    }

    return max;
}

上記のコードは int では問題なく動作しますが、次のように float で動作するように変更すると、

float largestFloat(float array[], int length){
    float max = array[0];
    int i;

    for( i=1; i<length; i++){
         if(array[i] > max){
               max = array[i];
         }
    }

    return max;
} 

正しい答えが得られることもあれば、元の配列にさえない膨大な数が得られることもあります。これにより、配列の長さを超えていると信じるようになります。

float f[15] = {9.5, 45.64, 313.11, 113.89, 81.56, 250.00, 11.9, 469.98, 313.11, 4.68, 34.33, 8013.55, -10.15, 11.5, 88.0} <-- filled with 15 values
largestFloat(f,15);

これは私が実行するものです。

4

2 に答える 2

0

問題は、最大のものを見つけてから値floatを返すことですint

int largestFloat(float array[], int length){     // return type is int
    float max = array[0];                        // max is float
    int i;

    for( i=1; i<length; i++){
         if(array[i] > max){
               max = array[i];
         }
    }

    return max;
} 
于 2013-09-21T01:28:27.060 に答える