查找整数中数字数量的C代码无法按照ssuggest修改工作



这是包含我的代码的文件(Google Docs链接(的链接 -

#include<stdio.h>
int len(int);
void main()
{
    int n,p;
    printf("enter number");
    scanf("%d",&n);
    p=len(n);
    printf("length of entered number is %d",p);
}
int len(int num)
{
    int i,c,b;
    for(i=1;i<=50;i++){
        b=10*i;
        if(num<b) {
            return(i);
            break;
        }
    }
}

计算b=10*i;没有逻辑上的意义。您是否要筹集10个给定的 power

解决此问题的正常方法是将其反复除以10,直到达到0(使用整数算术(,并计算所做的划分数量。那是原始数字中的数字数。此方法也不容易受到整数溢出的影响:

unsigned digits = 0;
for (; num /= 10; ++digits);
return digits;
int len(int num){
    int i = 0;
    if(num == 0)
        return 1;
    while(num!=0){
        num = num / 10;
        i++;
    }
    return i;
}

在这里,我们将num除以10,直到达到0,并且每次循环执行,我们会增加计数i++

frontMatter我无法识别您的答案,但我认为以下代码会根据您的标题有用。

#include<stdio.h>
#include<conio.h>
void main()
{
    char a[50000];
    int i,c=0;
    printf("enter number:");
    fflush(stdin);
    gets(a);
    for(i=0;a[i]!='';i++)
    {
        if(a[i]>=0 || a[i]<=9)
        {
            c++;
        }
    }
    printf("n %d digit number",c);
    getch();
}                        

最新更新