c++中可以对0取余数吗
时间: 2023-05-25 13:01:14 浏览: 298
在C语言中,对于整数类型的数,不能对0取余数,这是因为任何数除以0都是没有定义的(undefined)。在对0取余数的操作中,计算机将试图将0作为一个被除数来计算余数,但由于除以0是无意义的,计算机将无法执行此操作,因此会导致程序错误并可能崩溃。因此,在C语言中,如果试图对0取余数,会导致运行时错误(runtime error)。
相关问题
c++ 高精度取余数代码
下面是一个简单的 C++ 高精度取余数的示例代码:
```c++
#include <iostream>
#include <cstring>
using namespace std;
const int N = 1010;
int a[N], b;
char s[N];
int main()
{
cin >> s >> b;
int len = strlen(s);
for (int i = 0; i < len; i++) a[i] = s[i] - '0'; // 将字符串转成数字
int r = 0; // 记录余数
for (int i = 0; i < len; i++)
{
r = r * 10 + a[i]; // 将余数乘以 10,加上当前数字
a[i] = r / b; // 计算商
r %= b; // 计算余数
}
int k = len - 1;
while (k > 0 && a[k] == 0) k--; // 去掉前导零
for (int i = k; i >= 0; i--) cout << a[i]; // 倒序输出商
cout << endl << r << endl; // 输出余数
return 0;
}
```
其中,a数组存储被除数,b表示除数,s表示输入的被除数字符串。首先将字符串转化成数字存储在a数组中,然后从高位到低位依次计算商和余数,最后输出结果。需要注意的是,在计算余数时,要将余数乘以 10 再加上下一个数字,这样才能保证计算出正确的余数。
c++中取到的余数为什么会有负数
在 C++ 中,当使用取模运算符(%)计算负数时,结果可能为负数。这是因为 C++ 对于取模运算符遵循的规则:结果的符号和被除数的符号相同。因此,如果被除数为负数,则结果也可能为负数。
例如,-7 % 3 的结果为 -1。这是因为 -7 的符号是负号,所以结果也是负数。同样地,7 % -3 的结果为 1,因为 7 的符号是正号,所以结果也是正数。
如果需要确保结果为正数,则可以使用以下公式:
```
result = (a % b + b) % b
```
其中,a 和 b 分别为被除数和除数,result 为结果。这个公式确保了结果始终为非负数。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)