求一个正整数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
*/
扩展资料:
正整数,即大于0的整数,如,1,2,3…
0既不是正整数,也不是负整数(0是整数)。
负整数,即小于0的整数,如,-1,-2,-3…
知道正整数的一种分类办法是按照其约数或积因子的多少来划分的,比如仅仅有两个的(当然我们总是多余地强调这两个是1和其本身),就称之为质数或素数,而多于两个的就称之为合数。
参考资料来源:百度百科-正整数
#include <stdio.h>
int weishu(long n,int a[])
{int i=0;
while(n)
{
a[i++]=n%10;
n/=10;
}
return i;
}
void main (void)
{
long n;
int k,i,j,t,a[20];
scanf("%ld",&n);
printf("原数:%ld\n",n);
k=weishu(n,a);
printf("位数:%d\n",k);
for(i=0;i<k-1;i++)
for(j=0;j<k-1-i;j++)
if(a[j]>a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
printf("从小到大:");
for(i=0;i<k;i++)
printf("%d",a[i]);
printf("\n从大到小:");
for(i=k-1;i>=0;i--)
printf("%d",a[i]);
printf("\n");
getch();
}