📅  最后修改于: 2023-12-03 15:30:15.948000             🧑  作者: Mango
该程序用于计算给定整数的位数,它接受一个整数值作为输入,并返回该整数所占的位数。
该程序的实现思路如下:
首先判断输入的整数是否为0,如果是0,则直接返回1。
如果不是0,则先将输入的整数转化为正整数。
然后使用一个循环将正整数不断地除以10,直到商为0为止,每除一次,就将计数器加1。
循环结束后,返回计数器的值。
#include <stdio.h>
#include <stdlib.h>
int count_digits(int n) {
int count = 0;
// If n is 0, return 1
if (n == 0) {
return 1;
}
// Convert negative integer to positive
if (n < 0) {
n = -n;
}
while (n > 0) {
// Divide n by 10 and increment count
n /= 10;
count++;
}
return count;
}
int main() {
int n;
printf("Enter an integer: ");
scanf("%d", &n);
printf("Number of digits: %d", count_digits(n));
return 0;
}
在该程序上运行以下输入:
Enter an integer: 12345
输出:
Number of digits: 5
本程序通过简单的循环,实现了计算整数中的位数的功能。在实现该功能时,需要注意整数在不同情况下的处理方式,以保证程序的正确运行。