c++ - 反转数字 C++

标签 c++

在这里寻找一些关于我出错的建议。我主要的一切都应该没问题并且保持不变。我的问题出在我的反向功能上。它在“The number is”的 cout 语句之前打印反转的数字,而不是在它应该在的位置下方。我花了一段时间试图修复但无法提出解决方案。

 #include <iostream>
 #include <iomanip>
 #include <cstdlib>
 #include <ctime>
 using namespace std;

 const int NUM_VALS = 10;   //the maximum number of values to use

 int reverse(int num);
 bool isPrime(int num);

 int main()
  {
  int number,  //Holds the random number that is manipulated and tested
    loopCnt; //Controls the loop

  //set the seed value for the random number generator
  //Note: a value of 1 will generate the same sequence of "random" numbers     every
  //      time the program is executed
  srand(1);

  //Generate 10 random numbers to be manipulated and tested
  for( loopCnt = 1; loopCnt <= NUM_VALS; loopCnt++ )
       {
    //Get a random number
    number = rand();

   //Display the sum of adding up the digits in the random number, the reversed
   //random number, and whether or not the number is palindromic or a prime number

    cout << "The number is " << number << endl
         << "----------------------------------------" << endl
 //     << "Adding the digits result" << setw(16) << sumDigits( number ) << endl
        << "Reversing the digits result" << setw(13) << reverse(number) << endl
 //    << "Is the number a palindrome?" << setw(13) << (isPalindrome(number)? "Yes" : "No") << endl
 //     << "Is the number prime?" << setw(20) << (isPrime(number)? "Yes" : "No") << endl
        << endl << endl;
  }

  return 0;
}

int reverse(int num)
{
int quo, rem;
quo = num;  
while (quo != 0)
{
    rem = quo % 10;
    cout << rem;
    quo /= 10;
}

}

bool isPrime(int num)
{
int i;

if (num % 2 == 0)
    return false;
for (i = 3; i*i <= num; i+=2)
    {
        if (num % i == 0)
            return false;
    }
return true;
  }

最佳答案

您需要让您的 reverse 函数返回反转后的数字,因为返回值在 main 中使用。

您可以通过将“反转”值乘以 10,然后加上余数来构建反转数:

int reverse(int num)
{
  int reversed = 0;
  int quo, rem;
  quo = num;  
  while (quo != 0)
  {
    rem = quo % 10;
    reversed = reversed * 10 + rem;
    quo /= 10;
  }
  return reversed;
}

关于c++ - 反转数字 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33027223/

相关文章:

c++ - 提高从 qmake 生成的 Makefile 性能

c++ - 我应该用什么值填充数组以指示空白?

c++ - 如何检测和断言特定类的虚拟继承?

c++ - 意外的重定位类型 0x03

C++ 指向另一个类的动态指针数组

c++ - 如何制作对象的范围迭代器以与 boost KMP 一起使用?

c++ - 如何在 Qt 中以编程方式将 QWidget 设置在窗口的中央?

c++ - 如何从 C++ 共享对象引用调用应用程序

c++ - C++ Google Mock 指南提到的依赖注入(inject)

c++ - 将 std::string 传递给 C++ DLL 以便与 C# dll 一起使用