c语言计算一个非负整数位数的int_digit函数,其中,函数参数为待求位数的非负整数num,函数返回非负整数的位数
时间: 2024-05-11 08:19:47 浏览: 8
下面是一个计算非负整数位数的int_digit函数的C语言实现:
```c
int int_digit(int num) {
int digit = 0;
do {
digit++;
num /= 10;
} while (num != 0);
return digit;
}
```
该函数使用了do-while循环来不断地除以10,直到num变成0为止。在每次循环中,digit加1,表示位数增加了1。最后函数返回digit的值,即非负整数的位数。
相关问题
用C语言编写一个计算非负数位数的int_digit函数,其中,函数参数为代求位数的非负整数nmu,函数返回非负整数的位数
下面是用C语言编写的计算非负数位数的int_digit函数:
```c
#include <stdio.h>
int int_digit(unsigned int nmu){
int digits = 0;
if (nmu == 0){
digits = 1;
}
else{
while (nmu > 0){
digits++;
nmu /= 10;
}
}
return digits;
}
int main(){
unsigned int num = 123456789;
int digits = int_digit(num);
printf("The number of digits in %u is %d\n", num, digits);
return 0;
}
```
在这个函数中,我们首先判断输入的非负整数是否为0,若为0,则它只有1位;否则,我们通过取模运算和除法操作计算它的位数,直到它的值变成0。最后,函数返回计算出的位数。
我们在主函数中调用int_digit函数,并输出计算出的位数。
C语言编写一个函数求一个3位正整数的逆序数,如123的逆序数是321。
可以按照以下步骤编写一个函数来求一个3位正整数的逆序数:
1. 将该正整数的个位数、十位数和百位数分别提取出来;
2. 计算该正整数的逆序数,即将它的个位数、十位数和百位数交换位置;
3. 返回计算出的逆序数。
下面是C语言实现这个函数的代码:
```c
#include <stdio.h>
int reverse_number(int num) {
int digit_1 = num % 10;
int digit_2 = (num / 10) % 10;
int digit_3 = num / 100;
int reversed_num = digit_1 * 100 + digit_2 * 10 + digit_3;
return reversed_num;
}
int main() {
int num = 123;
int reversed_num = reverse_number(num);
printf("The reverse of %d is %d\n", num, reversed_num);
return 0;
}
```
在这个例子中,我们将数字123作为输入参数传递给reverse_number函数,该函数返回数字321,因为数字123的逆序数是321。