回 帖 发 新 帖 刷新版面

主题:求助啊!!!!

我是初学者,有不懂的就靠大家多提点了。我遇到一道题“编写一个C程序,输入a、b、c3个值,输出其中最大者。”下面是我写的东西,希望各位高手修改一下。
main()
{
   int a,b,c,d;
   scanf("%d,%d,%d",&a,&b,&c);
   d=max(a,b,c);
   printf ("max=%d",d)
}
int max (int x,int y)
{
   int z;
   if("x>y") z=x;
   else z=y;
   return (z);
}
结果输出的总是最小的那个值,郁闷。。。。。。

回复列表 (共4个回复)

沙发

把d=max(a,b,c);
换成d=max(max(a,b),c);试试

板凳


还是不行啊,输出的总是第一个值,不管大小总是第一个。纠结啊...我是一点头绪也没有

3 楼

你这样试试。



main()
{
   int a,b,c,d;
   scanf("%d,%d,%d",&a,&b,&c);
   d=max(a,b,c);
   printf ("max=%d",d)
}
int max (int x,int y,int z)
{
   int t;
   if(x>y) t=x;
   else t=y;
   if(t<z) t=z;
   return t;
}

4 楼

你在什么平台下编译的呀,里面大把的语法错误呢
//第一,你的函数max在这里要先声明
main()
{
   int a,b,c,d;
   scanf("%d,%d,%d",&a,&b,&c);
   d=max(a,b,c);//编译程序跑到这里的时候,怎么认得max是什么啊
   printf ("max=%d",d)//这里语句末层要有分号,表示语句结束
}
int max (int x,int y)//这里max只有两个参数,前面可是有三个参数哦
{
   int z;
   if("x>y") z=x;
   else z=y;
   return (z);//你说的问题在这里,这里有两个变量z。看仔细了,参数传递的时候
}             //有一个,你在里面又一个局部变量,按理说这里编译程序无法通,会报错的。

我改了一下,在VC6平台下通过了编译的

#include "stdafx.h"

int max(int x,int y, int z);
int main()
{
   int a,b,c,d;
   scanf("%d,%d,%d",&a,&b,&c);
   d=max(a,b,c);
   printf ("max=%d",d);
   return 0;
}
int max (int x,int y,int z)
{
   int i;
   if(x>y) i=x;
   else i=y;
   if(i>z) return i;
   else  return z;
}

我来回复

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