高手求助!! 请问我c语言程序求三个数中最小值 哪里错了!

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

int min(int x,int y,int z)

{
int k;
if(x<y) k=x;
else k=y;

if(z<y) k=z;
else k=y

return(k);
}

你的min函数写错了,最后返回的是y和z的较小值了
正确的应将最后的if和else改成
if(z<k)k=z;
return(k)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-24
int min(int x,int y,int z)

{
int k,j;
if(x<y) j=x;
else j=y;

if(z<j) k=z;
else k=j;

return(k);
}

你看看这样行不行?我没测试过,你也可以用三目运算符比较3个数的大小。
第2个回答  2011-03-24
if(x<y) k=x;
else k=y;
这里k为x,y的最小值
if(z<y) k=z;
else k=y
这里k为z,y的最小值
所以k只是这三个数的其中两个的最小值
应该改为
int min(int x,int y,int z)

{
int k;
if(x<y) k=x;
else k=y;

if(z<k && z<x)
k=z;
return(k);
}
相似回答