给一个不多于5位的正整数,要求:分别输出没一位数字
给一个不多于5位的正整数,要求:分别输出没一位数字
问下这道题的算法...
----------------解决方案--------------------------------------------------------
具体自己想,用/和%运算即可...
呵呵~有些东西还是自己解决的好~总之就这两种运算就能解决问题
----------------解决方案--------------------------------------------------------
char *itoa(int value,char *string,int radix)
将整数value转化为以radix基数的字符串,这个字符串存入到string中.
例如:
itoa(100,string,10);string中的结果:100
itoa(100,string,8); string中的结果:144
itoa(100,string,16); string中的结果:64
itoa(100,string,2); string中的结果:1100100
----------------解决方案--------------------------------------------------------
试一试这个函数.
----------------解决方案--------------------------------------------------------
谢谢2楼的,我想我知道怎么算了,谢谢
----------------解决方案--------------------------------------------------------
这个函数不大懂?????????????
----------------解决方案--------------------------------------------------------
#include<stdio.h>
void main()
{ int num,i,j=10,k=1,sum=0,a,bit=1;//bit为数的位数
scanf("%d",&num);
a=num;
while((a=a/10)!=0)
bit++;
for(i=0;i<bit;i++)
{ a=num%j;
a=a/k;
j*=10;
k*=10;
sum=sum+a;
}
printf("the sum is %d ",sum);
getch();
}
----------------解决方案--------------------------------------------------------
以下是引用wen1000在2007-4-23 17:54:46的发言:
这个函数不大懂?????????????
就是把整型数据转化为字符串.
----------------解决方案--------------------------------------------------------
main( )
{
long a;
int digits ,a5,a4,a3,a2,a1;
printf("\nInput a number(<100000) ");
scanf("%ld",&a);
if(a/10000>0) digits=5;
else if(a/1000>0) digits=4;
else if(a/100>0) digits=3;
else if(a/10>0) digits=2;
else digits=1;
printf("The number %ld contains %d digits",a,digits);
printf("\n");
switch(digits)
{
case 5:printf("%d ",a5=a/10000);
case 4:printf("%d ",a4=a%10000/1000);
case 3:printf("%d ",a3=a%1000/100) ;
case 2:printf("%d ",a2=a%100/10);
case 1:printf("%d ",a1=a%10);
}
printf("\n");
switch(digits)
{
case 5:printf("%d %d %d %d %d",a1,a2,a3,a4,a5);break;
case 4:printf("%d %d %d %d ",a1,a2,a3,a4);break;
case 3:printf("%d %d %d ",a1,a2,a3);break;
case 2:printf("%d %d ",a1,a2);break;
case 1:printf("%d ",a1);
}
printf("\nEnd");
}
试一试这个嘛,我们刚刚也在做这个程序,我用了这个,感觉不错
----------------解决方案--------------------------------------------------------
以下是引用限量版猪头在2007-4-23 18:17:10的发言:
#include<stdio.h>
void main()
{ int num,i,j=10,k=1,sum=0,a,bit=1;//bit为数的位数
#include<stdio.h>
void main()
{ int num,i,j=10,k=1,sum=0,a,bit=1;//bit为数的位数
scanf("%d",&num);
a=num;
while((a=a/10)!=0)
bit++;
for(i=0;i<bit;i++)
{ a=num%j;
a=a/k;
j*=10;
k*=10;
sum=sum+a;
}
printf("the sum is %d ",sum);
getch();
}
我的方法是正解~而且可以大于5位,只要把输入的数类型改成double就可
----------------解决方案--------------------------------------------------------