在c ++中非法使用浮点

时间:2017-01-22 05:02:23

标签: c++ floating-point

我在程序中非法使用浮点错误:

#include<iostream.h>
#include<conio.h>
#include<math.h>

void main()
{
 clrscr();

 int number,reverse,check,i,j,k=0,x;

 cout<<"Please enter number: ";
 cin>>number;

 //Obtaining no. of digits:
 for(i=1;check==0;i++)
 {
  check/=10;
 }

 //Reversing number:
 if(i%2==0)    //case even digits
 {  for(j=i;j>0;j--)
    {

    x=(number%pow(10,j))/pow(10,j-1);       //here
    reverse+=x*pow(10,k);
    k++;
    }
 }

 cout<<"Reverse number: "<<reverse;

 getch();
} 

我不知道为什么会出现这个错误,如果有人能帮我解决这个问题会很棒。

1 个答案:

答案 0 :(得分:2)

pow是一个返回double的函数。并且C ++ modulo operator %仅适用于整数。这是因为数学模运算符是为整数定义的。因此illegal use

此外,您在没有初始化的情况下使用check变量。在使用之前初始化所有变量,以避免进一步的意外。

修改

以下是其他一些更正:

在第一个check = number循环之前

for

for(i = 0; check != 0; i++)

最后,尝试找到另一种方法来获取数字的数字,而不使用pow使用连续整数除法的简单方法。