C语言中三个数比较大小

pingheng74 2014-08-18 09:27:17
#include <stdio.h>

int main()
{
int a,b,c;
printf ("Please input three numbers:\n");
scanf ("%a%b%c",&a,&b,&c);
if (a<b&&b<c) printf ("%d %d %d\n",a,b,c);
else if (a<c&&c<b) printf ("%d %d %d\n",a,c,b);
else if (b<a&&a<c) printf ("%d %d %d\n",b,a,c);
else if (b<c&&c<a) printf ("%d %d %d\n",b,c,a);
else if (c<b&&b<a) printf ("%d %d %d\n",c,b,a);
else if (c<a&&a<b) printf ("%d %d %d\n",c,a,b);
}

输入1 2 3这三个数是,为啥输出的却是:4096 2293448 4234454?

请哪位大侠能帮小弟解释一下?
...全文
537 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hongss 2014-08-21
  • 打赏
  • 举报
回复
查下scanf中的 %a %b %c都是什么就知道了
百曉生 2014-08-21
  • 打赏
  • 举报
回复
有些问题编译器是不会报错的,问题是这样的代码,楼主检查检查看不出来吗?这算是基础的知识点,楼主看的是哪本书啊
璞琥璎玛 2014-08-21
  • 打赏
  • 举报
回复
这个可以算C语言的把,怎么跑到BCB了
lhy 2014-08-20
  • 打赏
  • 举报
回复
引用 4 楼 pingheng74 的回复:
[quote=引用 1 楼 lhylhy 的回复:] scanf ("%a%b%c",&a,&b,&c); 这个错了。 应该用"%d%d%d" %c是字符。
为啥我写了scanf ("%a%b%c",&a,&b,&c);运行时没有报错?[/quote] 这个为啥要报错,编译程序允许你这么干,就比如你要求1+1但是写成1-1也不会报错。
pingheng74 2014-08-20
  • 打赏
  • 举报
回复
引用 3 楼 richer1015 的回复:
scanf ("%a%b%c",&a,&b,&c);占位符不对应,另外貌似没见过%a%b这种,,,,, 还有你这个代码看起很蛋碎,一个排序的问题,搞这么多if else,,,,弄个神马冒泡啊,二分法啊,快速排序啥的,后面直接输出排序好的,就哦了嘛,,,,
占位符错了,为啥没有报错? 规范的代码该怎没写?
pingheng74 2014-08-20
  • 打赏
  • 举报
回复
引用 1 楼 lhylhy 的回复:
scanf ("%a%b%c",&a,&b,&c); 这个错了。 应该用"%d%d%d" %c是字符。
为啥我写了scanf ("%a%b%c",&a,&b,&c);运行时没有报错?
richer1015 2014-08-20
  • 打赏
  • 举报
回复
scanf ("%a%b%c",&a,&b,&c);占位符不对应,另外貌似没见过%a%b这种,,,,, 还有你这个代码看起很蛋碎,一个排序的问题,搞这么多if else,,,,弄个神马冒泡啊,二分法啊,快速排序啥的,后面直接输出排序好的,就哦了嘛,,,,
百曉生 2014-08-19
  • 打赏
  • 举报
回复
楼上正解,楼主这错误犯得。。。 代码最好规范一点儿,如果你以后写了很长的程序,代码规范也便于查找错误。还有就是最好在最后加上return 0;
lhy 2014-08-18
  • 打赏
  • 举报
回复
scanf ("%a%b%c",&a,&b,&c); 这个错了。 应该用"%d%d%d" %c是字符。

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧