回 帖 发 新 帖 刷新版面

主题:C语言新手问个小小的问题

刚学C语言不久,自己学着编了个小程序,键盘输入3个数,输出最大值,运行达不到目的,请问哪出错了,谢谢!
main()
{
    int a,b,c,max;
    scanf("%d,%d,%d",&a,&b,&c);
    max=(a,b,c);
    if (a>b>c) max=a;
    else if (b>c>a) max=b;
         else max=c;
    printf("max=%d\n",max);
    }

回复列表 (共24个回复)

11 楼


main()
{  int a,b,c,max;
   scanf("%d,%d,%d",&a,&b,&c);
   max=a;
   if(a<b)max=b;
   if(max<c)max=c;
   printf("%d",max)
}

12 楼


main()
{
    int a,b,c,max;
    scanf("%d,%d,%d",&a,&b,&c);

    if (a>b)
      {if (b>c) max=a;
          else max=c;}
    else if (b>c) max=b;
         else max=c;  
    printf("max=%d\n",max);   
}
应该这样才对吧!请指教!(请那位大哥大姐帮忙解答下意思好吗?特别是从if(a>b)开始每排后面帮忙解释下什么意思,为什么要这么做好吗?

13 楼

我自己也编了一个啊
main()
{ int a,b,c,max;
  scanf("%d%d%d",&a,&b,&c);
  max=(a>b?a:b)>c?(a>b?a:b):c;
  printf("max=%d",max);
}

14 楼

13楼的else if (b>c) max=b;
不对

15 楼

这样应该没有问题的哦,指教.
int max(int x,int y)
{
int z;
(x>y)?(z=x):(z=y);
return(z);
}
void main()
{
int a,b,c,zui;
scanf("%d,%d,%d",&a,&b,&c);
zui=max(max(a,b),c);
printf("%d\n",zui);
}

16 楼

呵呵,新手的这个问题,看看书就应该明白了吧,首先max=(a,b,c)就是错误的,这个不是这样的,如果要分函数的话,应该是,max=max(a,b,c),然后后面加一个MAX函数

17 楼

我不会

18 楼

[quote]scanf中的格式控制串中间不应该有","吧!!!?????[/quote]

可以有的
scanf里面有“,”在你输入的时候必须按照SCANF里面的格式输入。
比如
scanf("%d,%d,%d",&a,&b,&c);

你输入的时候必须a,b,c
这样就可以了

19 楼

#define max(x,y) ((x)>(y)?(x):(y))
#include <stdio.h>
main()
{
    int a,b,c,max;
    scanf("%d%d%d",&a,&b,&c);
    max=(max(a,b),c);
    printf("%d\n",max);
}

             这样也行![em2]

20 楼


#include <stdio.h>
int main()
{
    int a,b,c,max;
    printf("please enter three numbers: \n");
    scanf("%d,%d,%d",&a,&b,&c);

    if (a>b)
     if (a>c) max=a; else max=c;
    else
     if (b<c) max=c; else max=b;
    printf("max=%d\n",max);

    getch();
    return 0;
}

请指教.

我来回复

您尚未登录,请登录后再回复。点此登录或注册