在 c++ 中非法使用浮点数

Illegal use of floating point in c++

本文关键字:浮点数 非法 c++      更新时间:2023-10-16

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

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

我不知道为什么会出现此错误,如果有人可以帮助我解决这个问题,那就太好

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

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

编辑

以下是要执行的其他一些更正:

check = number在第一个for循环之前。

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

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