你用纸上把一个十进制的数转换成二进制怎么转换的?你先算一遍,再看我的算法就知道了~首先一个数,最小的正整数0也占一位,所以i初始值为1。。然后。。
main()
{
int x,t=0;
while(x>0)
{ t=t+x%10;
x=x\10;
}
printf(“t=%d”,t);
这样就可以了呀~~~~~~~
[此贴子已经被作者于2006-2-21 12:51:17编辑过]
//妙啊
正确的程序的这样的:main(){int bit;long num;clrscr();scanf("%ld",&num); if(num<0||num>99999) printf("\ninput wrong"); else {if(num>9999&&num<100000) bit=5; if(num>999&&num<10000) bit=4; if(num>99&&num<1000) bit=3; if(num>9&&num<100) bit=2; if(num>=0&&num<10) bit=1; printf("bit=%d",bit);} }
#include<stdio.h>#include<stdlib.h>#include<conio.h>
#define MAX 10
void main(){ long n; char ch[MAX]; int i = 0;
scanf("%ld",&n);
ltoa(n,ch,10);
while(ch[i] != '\0') i++; printf("%d",i); getch();}这样做好像简单一点。