c语言将一个数一直除2怎么把数的值和余数存起来
时间: 2024-09-24 14:29:48 浏览: 44
幂法求矩阵特征值与条件数C语言
在C语言中,你可以使用循环结构(如for或while)结合取模运算符 `%` 来实现连续对一个数进行二分除并同时保存结果的过程。这里是一个简单的示例,用于递归地将一个整数`num`不断除以2,并将每次的结果(商和余数)存储到两个独立的变量中:
```c
#include <stdio.h>
void divide_by_two(int num, int* quotient, int* remainder) {
if (num == 0) { // 结束条件:当num为0时,说明已经除尽了
*quotient = 0; // 商设为0
*remainder = 0; // 余数也设为0
} else {
*quotient = num / 2; // 计算商
*remainder = num % 2; // 计算余数
num = *quotient; // 更新num为下一次除法的被除数
divide_by_two(num, quotient, remainder); // 递归调用
}
}
int main() {
int input = 15;
int quotient, remainder;
divide_by_two(input, "ient, &remainder);
printf("输入的数 %d 分解后商为:%d,余数为:%d\n", input, quotient, remainder);
return 0;
}
```
在这个例子中,`divide_by_two` 函数接受一个数字和两个指针作为参数,通过它们我们可以跟踪商和余数的变化。
阅读全文