当前位置: 代码迷 >> C语言 >> 此题怎解
  详细解决方案

此题怎解

热度:115   发布时间:2006-02-18 17:34:00.0
此题怎解

给一个不多于5位的正证书 要求: 1 求出它是几位数 2. 分别打印出每一个数字 3. 按逆顺序打印出各位数字

请写出程序.并说明应用什么函数~

搜索更多相关的解决方案: 打印  证书  

----------------解决方案--------------------------------------------------------

数是随机的还是认为输入的


----------------解决方案--------------------------------------------------------
输入
----------------解决方案--------------------------------------------------------
...错了.好象应该是随即.我感觉输入就挺简单的了~!书上没解释 .我写的是原样
----------------解决方案--------------------------------------------------------
输入不也是随机输入吗?
----------------解决方案--------------------------------------------------------

#include<stdlib.h>
#include<math.h>
main()
{
int N;
int i,n,m[6];

printf("input N:");
scanf("%5d",&N);

n=1;
for(i=10;i<100001;i*=10)
{
if(floor(N/i))

n++;

else break;
}
printf("\nn:%d",n);

getch();

for(i=1;i<n+1;i++)
{
m[i]=N%10;
N=N/10;
}
printf("\n");

getch();

for(i=1;i<n+1;i++)
{
printf("%d ",m[n-i+1]);
}

printf("\n");

getch();

for(i=1;i<n+1;i++)
{
printf("%d ",m[i]);
}

getch();
}


----------------解决方案--------------------------------------------------------

#include<stdlib.h>
#include <time.h>
#include <math.h>
main()
{
int N;
int i,n,m[6],t;

srand((unsigned) time(&t));

N=random(100000)-random(200000) ;
printf("N=%d",N);


n=1;
for(i=10;i<100001;i*=10)
{
if(floor(N/i))

n++;

else break;
}
printf("\nn:%d",n);

getch();

for(i=1;i<n+1;i++)
{
m[i]=N%10;
N=N/10;
}
printf("\n");

getch();

for(i=1;i<n+1;i++)
{
printf("%d ",m[n-i+1]);
}

printf("\n");

getch();

for(i=1;i<n+1;i++)
{
printf("%d ",m[i]);
}

getch();
}


----------------解决方案--------------------------------------------------------
main()
{int i,j;
char a[6];char *p;
printf("Input the number:\n");
scanf(“%s",a);
p=a;
for(i=0;i<6;i++,p++)
if(*p=='\0')break;
printf("这个数的位数是:%d\n数是:%s\n",i,a);
p=a[i-1];
for(j=i;j>=0;j--)
printf("%c",*p);
}
利用字符型与整型的相互可输值求解。

----------------解决方案--------------------------------------------------------
楼上思路不错,既然有这样麻烦的要求,就用简单的方式deal with it。
----------------解决方案--------------------------------------------------------

6楼的我试过了.只能算出数是几位的..

8楼的思路很好..不过上机不能运行..我修改了一下 没有用到指针(因为我还没学)

main()
{int i,j;
char a[6];
printf("Input the number:\n");
scanf("%s",a);

for(i=0;i<6;i++)
if(a[i]=='\0') break;
printf("This number's bit is:%d\nThis number is:%s\n",i,a);

for(j=i;j>=0;j--)
printf("%c",a[j]);
getch();
}

上机试过.没有问题.一切OK..谢谢大家~!


----------------解决方案--------------------------------------------------------
  相关解决方案