求指导,为何取值结果总不对?(C语言)
为何5个数比较,取出最大值和最小值,得出的结果是错误的?代码如下#include<stdio.h>
float vs(float ave[],int n);//求最大值函数
float sv(float ave[],int n);//求最小值函数
void main()
{
float sgxs,aver;
float max,min;
float sum=0,s;
int i;
for(i=0;i<5;i++)
{
scanf("%f",&sgxs);
s=sgxs;
sum+=s;
}
aver=sum/5;//平均值
max=vs(sgxs,5);//最大值
min=sv(sgxs,5);//最小值
printf("aver=%6.2f,max=%6.2f,min=%6.2f\n",aver,max,min);
}
float vs(float ave[],int n)
{
float max=0;
int i;
float z;
max=ave;
for(i=0;i<n;i++)
{
if(ave>max)
z=ave;
}
return (z);
}
float sv(float ave[],int n)
{
float min=0;
int i;
float w;
min=ave;
for(i=0;i<n;i++)
{
if(ave<min)
w=ave;
}
return (w);
}
为何结果不最缺?(结果如下)
本帖最后由 哥斯拉不说话 于 2015-8-18 12:11 编辑
#include<stdio.h>
float vs(float ave[],int n);//求最大值函数
float sv(float ave[],int n);//求最小值函数
int main()
{
float sgxs, aver;
float max, min;
float sum=0, s;
int i;
for(i=0;i<5;i++)
{
scanf("%f",&sgxs);
s = sgxs;
sum += s;
}
aver = sum / 5.0;//平均值
max= vs(sgxs, 5);//最大值
min= sv(sgxs, 5);//最小值
printf("aver=%6.2f, max=%6.2f, min=%6.2f\n", aver, max, min);
return 0;
}
float vs(float ave[],int n)
{
float max=0;
int i;
max=ave;
for(i=1;i<n;i++)
{
if(ave > max)
max = ave;
}
return max;
}
float sv(float ave[],int n)
{
float min=0;
int i;
min=ave;
for(i=1;i<n;i++)
{
if(ave < min)
min = ave;
}
return min;
} 谢谢,指教:victory:
页:
[1]