C语言 判断正整数的位数

作者&投稿:锺昏 (若有异议请与网页底部的电邮联系)
c语言里怎么求任意正整数的位数~

其实不用循环也可以做到,对其求以10为底的对数,然后取整数部分再加1,就是这个整数的位数.
下面是代码:

#include
#include
void main()
{
int n;
printf("please input an integer:");
scanf("%d",&n);
printf("%d的位数是%d
",n,(int)log10(n)+1);
}

有两个问题:
1)i没有赋初值
2)如果输入0会变成0位整数。
应该这样:
int i=0,n;scanf("%d",&n);do{i++; n/=10;}while(n);printf("%d
",i);

1、新建一个判断一个整数有多少位数项目。

2、添加一个 bit.c 文件。

3、包含stdio.h和stdlib.h头文件。

4、输入main函数主体及返回值。

5、在main函数中,输入判断一个整数有多少位数。

6、运行程序,查看输出结果。



//---------------------------------------------------------------------------

#include <stdio.h>

int che(int n)
{
int r=0;
while (n)
{
printf("%d",n%10);
r++;
n/=10;
}
putchar(32);
return r;
}
int main(void)
{
int n;
while (scanf("%d",&n)!=EOF)/*输入CTRL+Z结束循环过程,退出程序*/
{

printf("%d\n",che(n));
}
return 0;
}
//---------------------------------------------------------------------------

#include<stdio.h>
#include <stdlib.h>

int main()
{
int data,reversedata=0;
int n=0,m=0;
scanf("%d",&data);
while(data%10==0)
{
m++;
n++;
data/=10;
}
while(data/10!=0)
{
reversedata*=10;
reversedata+=data%10;
data/=10;
n++;
}
n++;
reversedata*=10;
reversedata+=data;
while(m--)
printf("0");
printf("%d %d\n",reversedata,n);
return 0;
}
可以运行,有问题hi我.


永兴县15570456410: C语言 判断正整数的位数给一个数n(0 -
陈没卢复方:[答案] //---------------------------------------------------------------------------#include int che(int n){ int r=0; while (n) { printf("%d",n%10); r++; n/=10; } putchar(32); return r;}int main(vo...

永兴县15570456410: c语言求一个正整数的位数怎么写? -
陈没卢复方: 首先要计算这个正整数有多少字节,然后就是每个字节8位.根据不同的环境下,int型占的字节数可能不一样.利用sizeof(int)可得到字节数

永兴县15570456410: c语言怎样求正整数的位数
陈没卢复方: int a,b;main(){ sancf("请输入一个整数",&a); for(b=0;a!=0;b++){ a=a%10; } prinft("%d",b);}

永兴县15570456410: c语言:(输入一个不多于4位的正整数,判断它是几位数)这是我的解法,我觉得不好,有没精炼的,求指导 -
陈没卢复方: main() {int a,b;scanf("%d",&a);if ( a > 9999 ){printf("E\n");}else{b=0;do{b++;a /= 10 ;}while( a );printf("%d\n",b);}getch(); }

永兴县15570456410: C语言程序设计:编写程序,输入一个正整数,统计该整数的位数并计算其各个数位上的数字之和. -
陈没卢复方:[答案] #include int main(){int a,b,i,t;int k = 0,sum = 0;scanf("%d",&a); //输入整数at = a;if(a / 10 == 0){k = 1;sum = a;printf("%d\n",k);printf("%d\n",sum);}else{while(a / 10 != 0){a = a / 10; //每除10,就有...

永兴县15570456410: C语言编程:给一个不多于3位的正整数,求出它是几位数. -
陈没卢复方: 思路是:①判断这个数是否小于10000并且大于0(检查输入的正确性)②假设输入数字是a,判断a是否等于1000、100、10.③判断a%1000是否大于0,如果是,则这个数是四位数,如果不是,判断a%100是否大于0,如果是,则这个数是三位数,判断a%10是否大于0,如果是,则这个数是两位数,如果以上情况都不是,就是一位数.注释:a%1000的结果表示a除以1000后的余数(小学数学里的除法余数概念),如果大于0,说明有余数,说明a至少大于1000.如果等于0,说明a小于或等于1000

永兴县15570456410: C语言程序设计:编写程序,输入一个正整数,统计该整数的位数并计算其各个数位上的数字之和. -
陈没卢复方: #include <stdio.h>int main() {int a, b, i, t;int k = 0, sum = 0; scanf("%d", &a); //输入整数a t = a;if(a / 10 == 0){k = 1;sum = a;printf("%d\n", k);printf("%d\n", sum);}else{while(a / 10 != 0){a = a / 10; //每除10,就有一位k++; ...

永兴县15570456410: C语言编程,任意输入一个正整数,倒序输出各位数字,并判断其是几位数. -
陈没卢复方: #include <stdio.h> int main(int argc, char **argv) { char num[64]; scanf("%s",num); int length=0; while(num[length]!='\0') length++; printf("5498是倒序各位数字是:"); int counter=length-1; while(counter>=0) printf("%c,",num[counter--]); printf("其是%d位数.",length); return 0; }

永兴县15570456410: c 语言中写一个程序,判断输入整数的位数、 -
陈没卢复方: int a; scanf("%d",&a); char data[512]={0}; itoa(a,data,10); int b=strlen(data); scanf("输入数字为%d位数",b); 详细回答,请采纳

永兴县15570456410: 由键盘任意输入一个正整数,要求:判断并显示它是几位数且计算并显示该数的各位数字之和.用c语言编程 谢谢 -
陈没卢复方: #include<stdio.h> #include<string.h> void main() {int i,j,sum=0;char a[100];printf("ÇëÊäÈëÕûÊý£º\n");gets(a);for(i=0,j=0;a[i]!='\0';i++){j++;sum+=a[i]-'0';}printf("%sÊÇ%dλÊý,¸ÃÊýµÄ¸÷λÊý*ÖÖ®ºÍ%d\n",a,j,sum); }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网