c语言 希望输出个位数,结果输出了2130567169这样的大数字

#include<stdio.h>#include<math.h>voidmain(){inty,a5,mm1,mm2,mm3,n1,n2,n3,n4,n5;longx;... #include<stdio.h>
#include<math.h>
void main()
{
int y,a5,mm1,mm2,mm3,n1,n2,n3,n4,n5;
long x;double k5;
printf("请输入一个五位整数:");
scanf("%d",&x);
printf("请输入需要累计的数字:");
scanf("%d",&y);
a5=x;
n1=a5%10;mm1=a5/10;
n2=mm1%10;mm2=a5/100;
n3=mm2%10;mm3=a5/1000;
n4=mm3%10;n5=a5/10000;
if(y==n1){k5++;};
if(y==n2){k5++;};
if(y==n3){k5++;};
if(y==n4){k5++;};
if(y==n5){k5++;};
printf("%d在%d中出现的次数为:%d次\n\n",y,x,k5);
}
希望得到例如12345中1出现的次数为1次,但结果变成了2130567169次这样的大数字!
展开
 我来答
百度网友5722492f7
2013-05-02 · TA获得超过725个赞
知道小有建树答主
回答量:594
采纳率:0%
帮助的人:477万
展开全部
int k5=0;
改成这个就好了,首先你没初始化,编译器会给一个随机的值
其次double要用%f
关键是你k5表示的是次数,那最好用整形。
如果只改double k5=0
也是不行的,因为%d转换之后1.0000会变成0
如果你执意要用double k5=0
那么后面的%d改成%f就好,但是你觉得输出结果 次数是1.00000这个可取么?
呵呵,望采纳。
linglin022
2013-05-02
知道答主
回答量:1
采纳率:0%
帮助的人:1507
展开全部
n1=a5%10;mm1=a5/10; n2=mm1%10;mm2=a5/100; n3=mm2%10;mm3=a5/1000; n4=mm3%10;n5=a5/10000;按照这个代码输入1234最后n1=1234,n2=123,n3=12.n4=1,n5=1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
NEWZ0
2013-05-02
知道答主
回答量:37
采纳率:0%
帮助的人:19.9万
展开全部
k5 的值在开始时没有定义...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式