C语言问题,求大神解决!!!

给一个不多于5位的正整数,求:1,它是几位数2,分别输出每一位数字3,按逆序输出每一位数字为什么我每次运行后输出的都是0,00000,00000呢?#include<st... 给一个不多于5位的正整数,求:
1,它是几位数
2,分别输出每一位数字
3,按逆序输出每一位数字
为什么我每次运行后输出的都是0,00000,00000呢?
#include<stdio.h>
#include<math.h>
main()
{
double s;
double a,b,c,d,e,place;
printf("input a number:");
scanf("%d",&s);
a=floor(s/10000);
b=floor(s/1000-a*10);
c=floor(s/100-a*100-b*10);
d=floor(s/10-a*1000-b*100-c*10);
e=floor(s-a*10000*b*1000-c*100-d*10);
if(a!=0)
place=s;
else {if(b!=0)
place=4;
else {if(c!=0)
place=3;
else {if(d!=0)
place=2;
else
place=1;}}}
printf("the place is:%d\n",place);
printf("shun xu is:%d%d%d%d%d\n",a,b,c,d,e);
printf("ni xu si:%d%d%d%d%d\n",e,d,c,b,a);
return 0;
}
懂了!!!谢谢大家支持!!!
不过还有个让我纠结的小问题……
我自己改过后的同一个程序,我用TC运行出来的结果是错的,发给一个学软件的哥们用VC2000运行出来又是对的,为神马呢?
展开
 我来答
cleverwzh
2011-05-06 · 超过23用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:70.6万
展开全部
重新给你写了一个 楼主参考一下吧 你那个功能 有点太狭隘了

#include <stdio.h>
#include<stdlib.h>
#include<math.h>

void main()
{
int max;
int i=0;
int copymax;
int *B;// 留着备用 存储 倒叙输出
int B_num; //记录数组B的长度

printf("请输入一个大数\n");
scanf("%d",&max);
while(max>=100000)
{
printf("输入错误 请输入五位数\n");
scanf("%d",&max);
}
printf("这个大数为: %d\n",max);

copymax=max; //将max 拷贝给copymax 用copymax去确定 这个大数 是几位数
for(i=0;copymax!=0;i++)
{
copymax=copymax/10;
}
printf("这个大数为 %d 位数\n",i);

B=(int *)malloc(sizeof(i)); //动态的为B 申请一块长度为i的空间
B_num=i; //将i作为数组的长度

printf("正序应该这样去读\n");
for(i;i!=0;i--)
{
int j;
j=max/(int)(pow(10,i-1)); //将大数的 最高为 存储到j中
max=max%(int)(pow(10,i-1)); //将大数最高位去掉
printf("%d\n",j); //将 j输出 j为 应该读取的 数
B[i-1]=j; //将数组 倒着存储到数组中
}

printf("倒叙输出为:\n");
for(i=0;i<B_num;i++)
{
printf("%d\n",B[i]);
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
馨儿_青衣
2011-05-06 · TA获得超过546个赞
知道小有建树答主
回答量:522
采纳率:0%
帮助的人:531万
展开全部
#include<stdio.h>
#include<math.h>
main()
{
int s;
int a,b,c,d,e,place;
printf("input a number:");
scanf("%d",&s);
a=(s/10000);
b=(s/1000-a*10);
c=(s/100-a*100-b*10);
d=(s/10-a*1000-b*100-c*10);
e=(s-a*10000-b*1000-c*100-d*10);
if(a!=0)
place=s;
else {if(b!=0)
place=4;
else {if(c!=0)
place=3;
else {if(d!=0)
place=2;
else
place=1;}}}
printf("the place is:%d\n",place);
printf("shun xu is:%d %d %d %d %d\n",a,b,c,d,e);
printf("ni xu si:%d %d %d %d %d\n",e,d,c,b,a);
return 0;
}

//已经改过,你自己对照下吧
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
地狱之火_hubin
2011-05-06
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
在你的基础上改了改 你看看吧!
#include<stdio.h>
#include<math.h>
main()
{
long s;
int a,b,c,d,e,place;
printf("input a number:");
scanf("%d",&s);
a=(s/10000);
b=(s%10000/1000);
c=(s%1000/100);
d=(s%100/10);
e=(s%10);
if(a!=0)
place=5;
else if(b!=0)
place=4;
else if(c!=0)
place=3;
else if(d!=0)
place=2;
else
place=1;
printf("the place is:%d\n",place);
switch(place)
{
case 5: printf("shun xu is:%d%d%d%d%d\n",a,b,c,d,e);
printf("ni xu si:%d%d%d%d%d\n",e,d,c,b,a);break;
case 4: printf("shun xu is:%d%d%d%d\n",b,c,d,e);
printf("ni xu si:%d%d%d%d\n",e,d,c,b);break;
case 3: printf("shun xu is:%d%d%d\n",c,d,e);
printf("ni xu si:%d%d%d\n",e,d,c);break;
case 2: printf("shun xu is:%d%d\n",d,e);
printf("ni xu si:%d%d\n",e,d);break;
case 1: printf("shun xu is:%d\n",e);
printf("ni xu si:%d\n",e);break;
default:break;
}

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bsszr
2011-05-06 · TA获得超过104个赞
知道小有建树答主
回答量:147
采纳率:0%
帮助的人:121万
展开全部
#include<stdio.h>
#include<math.h>
main()
{
int s;
int i;
int arr[5],place;
int num=0;
printf("input a number:");
scanf("%d",&s);
arr[0]=s/10000;
arr[1]=(s-arr[0]*10000)/1000;
arr[2]=(s-arr[0]*10000-arr[1]*1000)/100;
arr[3]=(s-arr[0]*10000-arr[1]*1000-arr[2]*100)/10;
arr[4]=s-arr[0]*10000-arr[1]*1000-arr[2]*100-arr[3]*10;
for(i=0;i<5;i++)
{
if(arr[i]!=0)
{
num=5-i;
break;
}
}
printf("the num is:%d\n",num);
printf("shun xu is:");
for(i=0;i<5;i++)
printf("%d ",arr[i]);
printf("\n");
printf("ni xu si:");
for(i=4;i>=0;i--)
printf("%d ",arr[i]);
printf("\n");
return 0;
}
你试试这个
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bdQuaker
2011-05-06 · TA获得超过253个赞
知道小有建树答主
回答量:551
采纳率:100%
帮助的人:441万
展开全部
在VC6++中测试通过

#include<stdio.h>
#include<math.h>
main()
{
int s,place;
int a,b,c,d,e;

printf("input a number:");
scanf("%d",&s);

a=s/10000;
b=s/1000-a*10;
c=s/100-a*100-b*10;
d=s/10-a*1000-b*100-c*10;
e=s-a*10000-b*1000-c*100-d*10;

if(a!=0)
place=s;
else {if(b!=0)
place=4;
else {if(c!=0)
place=3;
else {if(d!=0)
place=2;
else
place=1;}}}
printf("the place is:%d\n",place);
printf("shun xu is:%d%d%d%d%d\n",a,b,c,d,e);
printf("ni xu is:%d%d%d%d%d\n",e,d,c,b,a);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(9)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式