为什么这C++代码不适用于负整数
Why does this C++ code not work for negative integers?
#include<iostream>
using namespace std;
int x;
int y;
int z;
int main ()
{
cout << "x=";
cin >> x;
z = x;
y = 0;
while(z > 0)
{
(z = z / 10);
(y = y + 1);
}
while(z < 0)
{
(z =- z);
(z = z / 10);
(y = y + 1);
}
cout << "cifre=" << y;
}
它似乎适用于正整数,但不适用于负整数,我不明白为什么。有人可以解释一下吗?它必须计算位数...
它可能不适用于
负整数,因为z
的符号在while (z<0)
循环的每次迭代中都会翻转。因此,循环将在第一次迭代后停止,y
为 1。
使用这个
cout <<"x=";
cin >>x;
z=x;
y=0;
if(z<0)
z=-z;
while(z>0)
{
z=z/10;
y=y+1;
}
cout <<"cifre=" <<y;
相关文章:
- OpenGL - 在 NDC 中计算位置适用于着色器,但不适用于'regular'程序
- 使用模板参数重载C++方法:如何使其适用于模板的子类?
- 如何修复我的最大公约数代码?它适用于除零和零以外的所有数字
- C++相当于整数的 #define
- 选择排序C++(已修改)并非适用于所有情况
- 无法让"std::enable_if"适用于无作用域枚举
- 请找出我的代码中的错误,它在提交得到错误答案的同时仍然适用于我的所有测试用例
- 确定夏令时是否适用于特定日期
- 是否有一种 STL 算法可以最后找到,但它也适用于指针?
- QT 样式表主题,适用于使用属性选择器的整个应用程序
- C++带有适用于左值和右值的引用参数的函数
- 代码适用于调试,但不适用于发布
- C++17 和更新的 std::分配器是否适用于动态数量的自定义堆?
- 适用于大型数组的无复制线程安全环形缓冲区
- NRVO 是否也适用于协程?
- 约束包容是否仅适用于概念?
- 程序只适用于包含(无副作用)cout声明
- C++ - 泛型结构的成员在分配双精度时给出错误的值(但适用于整数)
- PowerMod函数适用于小整数,不适用于大整数
- C++:二叉搜索树适用于整数,但当我尝试传递字符串时崩溃