" [错误]在预期浮点值时使用的指针值"如何解决这个错误?

时间:2017-09-08 05:59:24

标签: c++ c

我的代码在下面 我希望在下面的代码中将Fahrenheit转换为摄氏度,但是我得到错误有人知道如何处理这个错误吗?

#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;
 }

5 个答案:

答案 0 :(得分:1)

请更改行

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

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

您错过了访问frnht数组

的索引

答案 1 :(得分: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-32));中,您将指针传递到除浮点值之外的位置。传递价值使用celcius = ((float)(5/9) + (float)(frnhet[i]-32));

答案 2 :(得分:0)

您的错误在这里:

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

必须为frnhet[i],因为 frnhet 是一个数组

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

答案 3 :(得分:0)

你在代码中错过了frnhet的索引。请参考以下代码 -

#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;
     }

答案 4 :(得分:0)

frnhet是一个数组,在表达式frnhet-32中,它将转换为指向其第一个元素的指针。将frnhet-32更改为frnhet[i]-32

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