c语言 选出3个数里最大的一个

来源:百度知道 编辑:UC知道 时间:2024/06/04 17:44:09
我自己编写的:

#include<stdio.h>
void main()
{
int max(int x,int y,int z);
int a,b,c,d;
scanf("%d,%d,%d",&a,&b,&c);
d=max(a,b,c);
printf("max=%d\n",d);
}
int max(int x,int y,int z)
{
int w;
if(x>y)w=x;
else w=y;
int s;
if(w>z)s=w;
else s=z;
return(s);
}

可以运行~为什么结果出现的是最小值?????
我不是没有输入逗号~~~~但是出现的是最小值~~~

谢谢ansn001帮我改的~~我想知道我那个为什么错了~~~难道是visaul有问题???

还有哦~~我是刚学c~~所以别用太高等的函数~~~就告诉我错误的原因以及改法~~谢谢各位大侠了~~~

最好直接改成
int max(int x,int y,int z)
{
int w;
w=x;
if(w<y);
w=y
if(w<z)
w=z;
return(w);
}
结果是对的楼主。你再运行一下。是最大值。
你重新建一个,再重写一下看看。
可以很肯定的告诉你。算法和程序是对的!!!!!我运行过了的。

#include<iostream>
using namespace std;
double max(double,double,double);
int main()
{
double a=0,b=0,c=0;
cin>>a>>b>>c;
cout<<"最大数:"<<max(a,b,c)<<endl;
return 0;
}
double max(double a,double b,double c)
{
double temp=0;
if (a>b)
{
temp=a;
}
else
{
temp=b;
}
if (temp>c)
{
return temp;
}
else
{
return c;
}
}

scanf("%d,%d,%d",&a,&b,&c);
是这一行的问题,你双引号里%d之间既然有都号,输入时也就有逗号才行,试着按下面格式输入:
1,2,3
或者将这一行改为:
scanf("%d%d%d",&a,&b,&c);

二楼