我试着把数字倒过来。 例:243>; 342这是我在学校的测验(不评分)
#include <iostream>
using namespace std;
int main()
{
int n, reverse, rem;
cout<<"Enter a number: ";
cin>>n;
while(n!=0)
{
rem=n%10;
reverse=reverse/10+rem;
n/=10;
}
cout<<"Reversed Number: "<<reverse<<endl;
return 0;
}
您应该执行reverse=reverse*10+rem;
而不是除法:
#include <iostream>
using namespace std;
int main()
{
int n=0, reverse=0, rem =0;
cout << "Enter a number: ";
cin >> n;
while (n != 0)
{
rem = n % 10;
reverse = reverse * 10 + rem;
n /= 10;
}
cout << "Reversed Number: " << reverse << endl;
return 0;
}
你可以试试这个
#include <iostream>
using namespace std;
int main()
{
int n, reverse=0, rem;
cout<<"Enter a number: ";
cin>>n;
while(n!=0)
{
rem=n%10;
reverse=reverse*10+rem;
n/=10;
}
cout<<"Reversed Number: "<<reverse<<endl;
return 0;
}
作为一种替代方法,也是一种更干净的方法,您可以将数字转换为字符串,并在此基础上进行操作,如果您的赋值规则允许这样做,转换字符串比转换数字类型更容易。
下面是一个可能的实现:
现场演示
#include <iostream>
int main()
{
int n;
std::cout << "Enter a number: ";
std::cin >> n;
std::string str = std::to_string(n); //number to string
std::string rev; //for reversed string
for (int rev_it = str.size() - 1; rev_it >= 0; rev_it--)
{
rev.push_back(str[rev_it]); // add to rev in reverse order
}
std::cout << "Reversed Number as string: " << rev << std::endl; //print as string
try
{
int rev_n;
rev_n = std::stoi(rev); //if you want to get it back to integer
std::cout << "Reversed Number as int: " << rev_n << std::endl; //print as int
}
catch (std::exception& e)
{
std::cout << "Can't convert to int"; //if the number is larger than int
}
return EXIT_SUCCESS;
}