鱼C论坛

 找回密码
 立即注册
查看: 3765|回复: 2

大家帮忙看下这个例子,不明白怎么回事

[复制链接]
发表于 2012-10-12 22:35:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>

int main(void)

{
        int a, b, c, max, min;
        printf("输入数字: ");
        scanf("%d%d", &a, &b, c);
        if ((a>b)?(max=a,min=b):(max=b,min=a));
        if(max<c)       
        {        max=c;}
    else       
        {if(min<c)               
        min=c;}
        printf("max=%d\nmin=%d\n", max, min);
       return 0;
}

这样就对  最后编译完没有错误但是这样编程就有错误
#include <stdio.h>

int main(void)

{
        int a, b, c, max, min;
        printf("输入数字: ");
        scanf("%d%d", &a, &b, c);
        if ((a>b)?(max=a,min=b):(max=b,min=a));
        if(max<c)       
        {        max=c;}
    else       
        {if(min>c)               
        min=c;}
        printf("max=%d\nmin=%d\n", max, min);
        return 0;
}
我说的错误不是编译的错误提示 ,而是型成EXE文件最后min的数值错误, 第二个min编译后出来的数字不对。
我这不明白麻烦大牛给我解释一把  ,谢谢了:loveliness::loveliness:
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-10-13 08:10:49 | 显示全部楼层
scanf("%d%d", &a, &b, c);        //这里的c的输入不是应该  scanf("%d%d%d", &a, &b,&c);么?

if ((a>b)?(max=a,min=b)(max=b,min=a));  //这里用法不妥吧,    max=(a>b)?a:b;  min=(a<b)?a:b;

你的代码我编译没通过,改了上面个两个就行了!
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-10-13 11:57:28 | 显示全部楼层
赞同楼上的                                       
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-15 14:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表