鱼C论坛

 找回密码
 立即注册
查看: 7455|回复: 11

全局变量运行函数后又特么清零了,伤不起,帮着看看

[复制链接]
发表于 2014-10-2 13:37:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
float min,max;
float test(float a[],int n)
{
  int i;
  float avg,sum=0.0,min=a[0],max=a[0];
  for(i=0;i<n;i++)
  {
    sum=sum+a[i];
        if(a[i]<min)
        {
          min=a[i];
        }
        else if(a[i]>max)
        {
          max=a[i];
        }
  }
  avg=sum/n;
  return(avg);
}
void main()
{
  float avg;
  float mark[10]={78.0,86.5,86.0,84.0,45.5,91.0,79.5,88,92,80.5};
  avg=test(mark,10);
  printf("average=%f,max=%f,min=%f\n",avg,max,min);
}

甲鱼上课的一道题求均值最大最小的,·debug以后发现运行完函数有了值之后最后进入main输出结果时候又min和max又变成0了。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-10-2 13:38:19 | 显示全部楼层
最后min和max结果都是0,均值正常
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-2 14:00:17 | 显示全部楼层
本帖最后由 朝仓太阳 于 2014-10-2 14:02 编辑

这是test函数运行完时候,min,max,和 avg的值

test函数运行完

test函数运行完
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-2 14:05:42 | 显示全部楼层
然后...............................min,max,avg都没了..........由于不会看汇编还,请大神们帮忙啊

桑心一刻

桑心一刻
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-2 14:07:02 | 显示全部楼层
最后.............:huffy:
QQ截图20141002140701.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-10-2 14:32:27 | 显示全部楼层
这个就可以的...............
#include<stdio.h>
float Max,Min;
void main()
{
  float average(float a[], int n);
  float av,score[10]={52.0,58.5,92,73,54.5,94.5,88,76,90.5,88};
  av=average(score,10);
  printf("max=%f\nmin=%f\naverage=%f\n",Max,Min,av);
}
float average(float a[],int n)
{
  int i;
  float aver, sum=0;
  Max=Min=a[0];
  for(i=0;i<n;i++)
  {
    if(a[i]>Max) Max=a[i];
        else if(a[i]<Min) Min=a[i];
        sum=sum+a[i];
  }
  aver=sum/n;
  return(aver);
}
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-2 22:41:57 | 显示全部楼层
@牡丹花下死做鬼 @Answer.zhang
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-3 15:06:40 | 显示全部楼层
我操挽尊的都没有
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-10-5 16:55:33 | 显示全部楼层
float avg,sum=0.0,min=a[0],max=a[0];
上面的大哥说了 这个就相当于重新定义了
float aver, sum=0;
  Max=Min=a[0];
这样就好了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2014-11-1 06:00:33 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-7 09:15:28 | 显示全部楼层
max=[0]和min=[0]去掉就好,楼上还真说对了,重复定义了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-7 10:58:25 | 显示全部楼层
zhoumx 发表于 2014-10-5 16:55
float avg,sum=0.0,min=a[0],max=a[0];
上面的大哥说了 这个就相当于重新定义了
float aver, sum=0;

谢谢楼主细心回答!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-14 00:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表