这里你定义的n是int型,C语言中int型的范围是-2147483648~2147483647。如果要判断10位以上,至少应该将n定义为long型。
#include "stdio.h"
int main()
{int n=0,n1,i;
scanf("%d",n);
for(n1=n,i=0;n;i++)
n/=10;
printf("%d是一个%d位数\n",n1,i);
return 0;
}
代码如下:
#includestdio.h
int main()
{
int a,b;
int i;
printf("请输入一个数字:");
scanf("%d",a);
b=a;
for(i=0;a1;i++)
{
a=a/10;
}
printf("%d是%d位数\n",b,i);
}
扩展资料:
思路详解:
在C语言中,经常会用到以整数相除来确定一个整形数字的每一位的具体数字是多少,同理,此处可用整数相除来判断一个数的位数。
首先,使用scanf函数获取这个数字的值,且赋给变量b,作一个备份。
接着,确定核心思路为,当一个数整除10,第一次结果为1时,这个数是一个个位数。因而,以其作为循环内的主体。
得到了for(i=0;a1;i++) a=a/10; 这样的代码,最后,输出结果即可。
c语言怎么计算一个数有多少位的方法:
1.
输入待计算的数x
2.
定义一个数位的变量int
n=0;
3.
循环,x每次缩小10倍,n=n+1;
最终x会变成0,循环结束
4.
输出n值
代码:
#include
void main()
{
int x,m,n=0;
printf("input x: ");scanf("%d", x );
m=x; //备份原数,供输出用
do {
n++;
x /= 10 ;
} while( x0 );
printf("%d 是%d位数\n", m, n );
}
判断一个输入得数子是几位数的源代码如下:
#includestdio.hvoid main()
{
void count();
printf("请输入一串字符,数字、字母皆可:\n");
count();
}
void count()
{
char c[32];
int n=0;
while((c[n]=getchar())!='\n')
{
n++;
}
printf("输入字符总数为:%d\n",n);
printf("反序输出结果为:");
for(n;n=0;n--)
{
printf("%c",c[n]);
}
printf("\n");
}
扩展资料
1、关键字不能用作用户定义的名称(标识符)。
2、对于每个开放的brase({),必须有相应的闭合brase(})。
3、必须声明每个变量bofore使用它。
4、每个C程序都必须编写此语句。该语句(main)指定C程序执行的起始点。main是一个用户定义的方法,它告诉编译器这是程序执行的起点。int是在完成主方法执行后将返回操作系统的值的数据类型。如不想返回任何值,可以将其用作void。
思路:求一个正整数n的位数可以先定义一个变量num,并初始化为0,依次把该整数n除以10,直到其为0为止,并且每除一次10,变量num的个数就自加1,最后num的值就是该整数n的位数。
参考代码:
#include stdio.h
int main()
{
int n,num=0;
scanf("%d",n);
while(n){
num++;
n/=10;
}
printf("%d\n",num);
return 0;
}
/*
输出:
123456
6
*/