黑马程序员技术交流社区

标题: 为什么程序的输出结果成乱码了呢?不懂~求教~ [打印本页]

作者: cy-fish    时间: 2015-4-28 21:01
标题: 为什么程序的输出结果成乱码了呢?不懂~求教~
本帖最后由 cy-fish 于 2015-5-1 21:53 编辑
  1. #include<stdio.h>
  2. #define MIN(a,b,c) (a<b?(a<c?a:c):(b<c?b:c))                                        /*宏定义找三个数中较小数*/
  3. main()
  4. {
  5.         int x,y,z;
  6.         printf("please input x、y、z:\n");
  7.         scanf("%d,%d,%d",&x,&y,&z);
  8.         printf("the min number is:%d\n",MIN(x,y,z));                                 /*宏定义调用*/
  9. }
复制代码

作者: !陈超    时间: 2015-4-28 21:22

没有问题啊,运行了下,你是不是输入的时候分隔符用的空格,你的scanf里写的是, 啊

作者: mony    时间: 2015-4-29 00:30
从代码上看是没有问题的...
作者: ruihai    时间: 2015-4-29 09:10
这个代码不严谨吧,记得视频里说过宏定义的参数和结果都要用()括起来的
作者: shenxian88    时间: 2015-4-30 11:06
你这个题,是宏定义三目运算符的地方出了问题,我改过以后,你看看能不能得到你想要的结果,如果结果是对的,那就结贴吧
这是我改过的
#include<stdio.h>
#define MIN(a,b,c)  ((a < b? a : b) < c ? (a < b? a : b):c)                          /*宏定义找三个数中较小数*/
main()
{
    int x,y,z;
    printf("please input x、y、z:\n");
    scanf("%d,%d,%d",&x,&y,&z);
    printf("the min number is:%d\n",MIN(x,y,z));                                 /*宏定义调用*/
}

作者: cy-fish    时间: 2015-5-1 20:05
shenxian88 发表于 2015-4-30 11:06
你这个题,是宏定义三目运算符的地方出了问题,我改过以后,你看看能不能得到你想要的结果,如果结果是对的 ...

怎么结贴啊??
作者: kailee    时间: 2015-5-1 20:56
编码问题吧,我写过一篇文章,有兴趣可以看看:
http://kai-lee.com/2015/04/24/%E6%95%B2%E4%BB%A3%E7%A0%81%E6%97%B6%E9%81%87%E5%88%B0%E7%9A%84%E4%B9%B1%E7%A0%81%E9%97%AE%E9%A2%98/#more
作者: shenxian88    时间: 2015-5-1 21:38
cy-fish 发表于 2015-5-1 20:05
怎么结贴啊??

你点击编辑,里面有一个结束提问,你选择结束提问就行了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2