输入三个数,求最大数和最小数的和?(下面是我编写的,但调试不出来,请高手们帮帮忙,谢谢了!)
#include “stdio.h”
float max(float x,float y,float z);
float min(float x,float y,float z);
float sum(float m,float n);
main()
{float x,y,z,m,n,h;
printf(“please input three numbers:”);
scanf(“%f,%f,%f”,&x,&y,&z);
m=max(x,y,z); n=min(x,y,z); h=sum(m,n);
printf(“the sum of max and min is:%f\n”,h);
}
float max(float x,float y,float z)
{ if(x>y) max=x;else max=y;
if(z>max) max=z return max;
}
float min(float x,float y,float z)
{if(x<y) min=x;else min=y;
if(z<min) min=z return min;
}
float sum(float m,float n)
{int h;
h=m+n;
}
是什么问题呀??????
>> 本文固定链接: http://www.vcgood.com/archives/2244
你想知道什么,出现了什么问题?你总知道吧,
此程序有哪些错误?帮忙改一下啦!
定义有点错误吧,编程有点烦琐,应该用switch语句
问题很多哦大哥~~
先不管你要干嘛,我找出了一点点语句上的问题
float sum(float m,float n)
{
int h;
h=m+n;
}
首先你的h定义为int了,应该也为float
这个定义中,你没有把h return
还有挺多的哦,我继续找
float max(float x,float y,float z)
{ if(x>y) max=x;else max=y;
if(z>max) max=z return max; /*z的后面少了;而且忘记定义max了*/
}
float min(float x,float y,float z)
{if(x<y) min=x;else min=y;
if(z<min) min=z return min; /*z的后面少了;而且忘记定义min了*/
}
在这些定义函数中的变量和主函数main()中的变量互不影响,所以也是要定义的
#include “stdio.h”
float max(float x,float y,float z);
float min(float x,float y,float z);
float sum(float m,float n);
main()
{float x,y,z,m,n,h;/*你的这个分号很奇怪哦,全角还是半角的*/
printf(“please input three numbers:”);
scanf(“%f,%f,%f”,&x,&y,&z);
m=max(x,y,z); n=min(x,y,z); h=sum(m,n);
printf(“the sum of max and min is:%f\n”,h);
}
以下是我改的,改了一些东西(按我自己的习惯改的),
可以运行,你想要的效果也达到了。
但是个人建议,很繁琐,有其他的算法能简便
#include <stdio.h>
float max(float x,float y,float z);
float min(float x,float y,float z);
float sum(float m,float n);
int main(void)
{
float x,y,z;
float m,n,h;
printf(“please input three numbers: “);
scanf(“%f,%f,%f”, &x, &y, &z);
m=max(x,y,z);
n=min(x,y,z);
h=sum(m,n);
printf(“the sum of max and min is: %f\n”,h);
system(“pause”);
}
float max(float x,float y,float z)
{
float m;
if(x>y)
m=x;
else
m=y;
if(z>m)
m=z;
return m;
}
float min(float x,float y,float z)
{
float n;
if(x<y)
n=x;
else
n=y;
if(z<n)
n=z;
return n;
}
float sum(float m,float n)
{
float h;
h=m+n;
return h;
}
真不好意思,一人占了4楼,那就再让我占一楼好了~~
在编一个程序之前你先的明白你要干什么,在说怎么干,而且在问的时候你的具体说一个在调试时出了什么问题,让人们对你的问题有个了解,你说谁一天有那么多工夫给人看那些程序啊?
用其他算法写的,应该可以达到同一效果吧
#include<stdio.h>
int main(void)
{
float max, min, sum;
float x, y, z;
printf(“Please input three numbers: “);
scanf(“%f %f %f”, &x, &y, &z);
max = (max = x > y? x: y) > z? max: z;
min = (min = x < y? x: y) < z? min: z;
printf(“Max is %.3f. Min is %.3f.\n”, max, min);
printf(“The sum is %.3f”, max + min);
system(“pause”);
return 0;
}
有這麼繁瑣麼?應該狠簡單的吧?
我看出两点:
1,就是那个scanf函数最好写成(“%f%f%f”,&x,&y,&z);
2,就是那个sum函数没有返回值在其最后应该加一句return h;
其实第一个问题只要你输入时在各项之间加一个逗号的话,就不会出现错误,而第二个必须改,否则就没与返回值了!