求最高位的权值
请教大家一个问题:
给定任意一个整数,位数不定,如何知道最高位的权值是多少?
如:583:对应最高位权就是:100
4523 : 10000
233444:10000
那么:
3....4234呢?
不知道这样说大家是否明白了呢?
[解决办法]
每次除10,结果大于10,继续
计数器每次加1
从而可知最高位的权值
[解决办法]
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i=12345, j=i;
int p=0;
while(i!=0){p++; i=i/10;} //循环做除法,直到为0即可
printf( "%d, 权值为%d\n ", j, p);
system( "PAUSE ");
return 0;
}
[解决办法]
或者这样,
使用字符串转化, 求字符串的长度即可:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i=12345;
char tmp[10]={0};
sprintf(tmp, "%d ", i);
printf( "%d, 权值为%d\n ", i, strlen(tmp));
system( "PAUSE ");
return 0;
}
[解决办法]
#include <stdio.h>
#include <stdlib.h>
jixingzhong(瞌睡虫星辰) ( ) 信誉:100 Blog 2007-02-28 09:21:46 得分: 0
int main()
{
int i=12345, j=i;
int p=0;
while(i!=0){p++; i=i/10;} //循环做除法,直到为0即可
printf( "%d, 权值为%d\n ", j, p);
system( "PAUSE ");
return 0;
}
===========================
同意星辰的说法
[解决办法]
主要的 是
int p =1;
while(i!=0){p *= 10; i=i/10;} 吧
[解决办法]
同意楼上的