回 帖 发 新 帖 刷新版面

主题: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个回复)

沙发

max=(a,b,c);// 此表达式将c的值赋与max
    if (a>b>c) max=a; // >不是这么用的

#include <stdio.h>
int main()
{
    int a,b,c,max;
    scanf("%d,%d,%d",&a,&b,&c);

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

板凳

o  哦,自己再琢磨下,谢谢1楼的

3 楼

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

我也是个新手 不知道正确不 你看看!

4 楼

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);   
}
应该这样才对吧!请指教!

5 楼

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

6 楼


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

    if (a>b)
      {if (a>c) max=a;
          else max=c;}
    else if (b>c) max=b;
         else max=c;  
    printf("max=%d\n",max);   
}
 应该这样才对!请指教

7 楼

[quote]main()
{ int a,b,c,max;
  scanf("%d%d%d",&a,&b,&c);
  max=a;
  if(b>a) max=b;
  if(c>b) max=c;
  printf("max=%d",max);

我也是个新手 不知道正确不 你看看![/quote]
如果是a>c>b就有问题了,呵呵
再加 if(a>c) max=a;就OK了 
或者第二个if改成 if(c>b||a<c) max=c;^_^
PS:我也是新手^_^

8 楼

if (b>a)
   max = b;
else
   max = a;
if (max<c)
   max = c;

9 楼

[quote]scanf中的格式控制串中间不应该有","吧!!!?????[/quote]
可以.这样用的话在输入的时候就应该按照这个格式对照输入.
比如:1,2,3

10 楼

#include "stdio.h"

int main()
{
    int a,b,c,max;
    scanf("%d%d%d",&a,&b,&c);
    max=(a>b)?(a>c?a:c):(b>c?b:c);
    printf("max=%d\n",max);
    return 0;

}

我来回复

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