2017-09-08 8 views
-6

私のコードは下にあります 次のコードでFahrenheitを度Celsiusに変換したいのですが、このエラーでどのように対処するかを知っていますか?"[エラー]浮動小数点値が予測されたところでポインタ値が使用されました"このエラーを解決する方法?

#include <stdio.h> 
int main() 
{ 
    int frnhet[]={0,20,40,60,80,100,120,140,160,180,200,220,240,260,280,300}; 
    double celcius; 
    int i; 
    for(i=0;i<16;i++) 
     { 
     celcius = ((float)(5/9) + (float)(frnhet-32)); 
     printf("celcius = %f",celcius); 
     } 
    return 0; 
} 
+0

***しかし、私はエラーが発生しています***何のエラー? –

+0

お読みください:https://stackoverflow.com/help/how-to-ask どのようなエラーが発生していますか? –

+0

'frnhet-32'はUBですが、ポインタを生成します。 – user0042

答えて

0

あなたのエラーはここにある:

celcius = ((float)(5/9) + (float)(frnhet-32)); 

frnhetあなたはコードでfrnhetするインデックスを逃した配列

celcius = ((float)(5/9) + (float)(frnhet[i] - 32)); 
0

あるので、それはfrnhet[i]でなければなりません。配列で、表現frnhet-32で、その最初の要素へのポインタに変換されます

#include <stdio.h> 

    int main() 
    { 
     int frnhet[]={0,20,40,60,80,100,120,140,160,180,200,220,240,260,280,300}; 
     double celcius; 
     int i; 
     for(i=0;i<16;i++) 
      { 
      celcius = ((float)(5/9) + (float)(frnhet[i]-32)); 
      printf("celcius = %f",celcius); 
      } 
     return 0; 
    } 
0

frnhet - 以下のコードを参照してください。 frnhet-32frnhet[i]-32に変更してください。

celcius = (5.0/9 + frnhet[i]-32); 
1

あなたはポイントを渡しているfrnht配列celcius = ((float)(5/9) + (float)(frnhet-32));

1
#include <stdio.h> 
int main() 
{ 
    int frnhet[]={0,20,40,60,80,100,120,140,160,180,200,220,240,260,280,300}; 
    double celcius; 
    int i; 
    for(i=0;i<16;i++) 
     { 
     celcius = ((float)(5/9) + (float)(frnhet[i]-32)); 
     printf("celcius = %f",celcius); 
     } 
    return 0; 
} 

にアクセスするためのインデックスを逃しライン

celcius = ((float)(5/9) + (float)(frnhet[i]-32)); 

celcius = ((float)(5/9) + (float)(frnhet-32)); 

を変更してください。それは浮動小数点値を除いてどこですか。値渡し用celcius = ((float)(5/9) + (float)(frnhet[i]-32));

関連する問題