反转一个数字程序不起作用,为什么?
Reverse a number program not working,why?
#include <iostream>
using namespace std;
int main()
{
int n,sum=0;
cout<<"enter no.";
cin>>n;
while(n!=0)
{
int r=n%10;
int sum= (sum*10)+r;
n=n/10;
}
cout<<sum;
return 0;
}
这里的输出应该反转一个数字,但它给出的 O/P 为"0" 听不懂!! 请帮忙。
不要读数字,读一个字符串:
#include <iostream>
using namespace std;
int main()
{
std::string n;
cout<<"enter no.";
cin>>n;
std::string reversed(n.rbegin(), n.rend());
cout<<reversed;
return 0;
}
你的代码基本上是正确的,但你在while循环中犯了一个小错误。
旧代码:-
#include <iostream>
using namespace std;
int main()
{
int n,sum=0;
cout<<"enter no.";
cin>>n;
while(n!=0)
{
int r=n%10; //-- Y R U declaring the variables 'r' and 'sum' here?
int sum= (sum*10)+r;//-- Declare them at top and initialize 'sum' with 0
n=n/10;
}
cout<<sum;
return 0;
}
新代码:-
#include <iostream>
using namespace std;
int main()
{
int n, sum = 0;
cout << "Enter a number >> ";
cin >> n;
while (n != 0) {
sum = (sum * 10) + n % 10;
n /= 10;
}
cout << sum << endl;
return EXIT_SUCCESS;
}
输出:-
Enter a number >> 123456
654321
Press any key to continue . . . _
问题是sum
之前的int
正在循环内创建一个隐藏外部sum
的局部变量。如果删除它,您的程序将正常工作。您可能需要查找C++变量的范围。
#include <iostream>
using namespace std;
int main()
{
int n,sum=0;
cout<<"enter no.";
cin>>n;
while(n!=0)
{
int r = n % 10;
sum = (sum * 10) + r;
//^^ note no int
n=n/10;
}
cout<<sum;
return 0;
}
相关文章:
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- sigwait() 在多线程程序中不起作用
- 为什么使用数组元素查找最大数字的程序不起作用?
- C++实用程序::转换在静态链接库中不起作用
- Cuda 基本程序 (将值写入矩阵和 std:cout 不起作用) ;主功能不启动
- 视窗 10 :笔(手写笔)在 MFC 应用程序上不起作用
- win32 滚动条在 C/C++ 程序中不起作用
- 用于拆分空格字符串的程序不起作用
- 反转一个数字程序不起作用,为什么?
- C++ 程序在代码块 IDE 中不起作用
- 该程序将.csv文件中的一系列单词放入数组中,然后随机生成句子.但它不起作用
- 程序在CLion IDE中工作,但exe不起作用
- Opencv在2013年第5季度不起作用.应用程序总是在窗口中崩溃
- C++从句子中删除给定字符的程序不起作用
- C ++ GCC 内联程序集似乎不起作用
- 为什么当我选择>250000个采样点时,程序不起作用?
- 任务计划程序库的预处理不起作用 - 多定义错误
- C 为什么我的程序循环和"if-statements"不起作用?
- try() 和 catch() 不起作用;程序崩溃,从不执行 catch() 块
- Cin 执行不起作用 (程序.exe <文件与数据.txt)