电子散热器pzsink:用C语言编输入一个整数输出其位数
int 类型所能容纳的数字位数不能超过 10。 我写的这个程序稍微长了点,
但不受 int 类型容量的限制,能够处理很长的整数输入(由 buffer 数组的大小决定)。
这程序只处理纯整数输入。 有疑问尽管问。
#include <ctype.h>
#include <stdio.h>
void main( ) {
int count = 0;
char buffer[ 1001 ],
*p = buffer,
c;
puts( "Enter an integer:" );
gets( buffer );
// Skip leading space.
while( isspace( *p ) )
p++;
while( isdigit( c = *(p + count) ) )
count++;
// Ignore number with trailing non-space character.
if( c != '\0' && ! isspace( c ) )
count = 0;
if( count > 0 )
printf( "The number of digit(s) in your integer is %d.\n", count );
else
puts( "You didn't provide a valid integer.\n" );
}
int nData;
scanf("%d",&nData);
int i=1;
for(;;i++)
{
nData/=10;
if (nData==0)
break;
}
printf("位数是%d",i);
/*
版权所有 陈冠钢
用C语言编输入一个整数输出其位数
*/
#include<stdio.h>
void main()
{
int number,sum=0;
printf("enter number:\n");
scanf("%d",&number);
while(number>0)
{
number/=10;
sum++;
}
printf("\n%d",sum);
}
已前都学过,格式都不太清楚了,我说下思路啊
比如输入一个数111,如果111大于0,则i 加1,用111除10,结果如果大于0,i加1,至到小于0就行了,最后i的值就是位数。
#include<stdio.h>
main(){
int i;
scanf("%d",&i);
if(i<0) i=-i;
int k=0;
while(i){
k++;
i=i/10;
}
printf("%d\n",k);
}