一个关于c语言scanf函数的问题
main(){intx,y;scanf("%2d*%d",&x,&y);printf("%d%d",x,y);}我输入365*36为什么每次输出3625396我是故意让输...
main()
{
int x,y;
scanf("%2d*%d",&x,&y);
printf("%d %d ",x,y);
}
我输入365*36为什么每次输出36 25396
我是故意让输入超出的%2d的
不好意思
每次输出是36 25391
为什么每次输出后面的那个都是25391 展开
{
int x,y;
scanf("%2d*%d",&x,&y);
printf("%d %d ",x,y);
}
我输入365*36为什么每次输出36 25396
我是故意让输入超出的%2d的
不好意思
每次输出是36 25391
为什么每次输出后面的那个都是25391 展开
5个回答
展开全部
%2d表示输入宽度为2,所以输入了36,所以输入错误,改成
"%3d*%d"
"%3d*%d"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上说得不对,一般int类型占2个字节,也有的操作系统占4个,long占4个字节,你这样输入时要求整数保留前2位,当然会使X变为36,这样错误就会发生,请你输入时用scanf("%d*%d",&x,&y);这样才对也不会出错
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
嗯
楼上的太监九级正解
哈哈
楼上的太监九级正解
哈哈
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int 类型在内存中占4个字节,一个字节范围-128-127
365*36超出了范围把
365*36超出了范围把
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询