标题:请教一个全局变量输出问题。
只看楼主
winison
Rank: 2
等 级:论坛游民
帖 子:21
专家分:27
注 册:2007-10-27
结帖率:100%
已结贴  问题点数:20 回复次数:3 
请教一个全局变量输出问题。
#include<stdio.h>
float max,min;
float average(float arrag[],int n)
{
    int i;
    float num=0;
    max=min=arrag[0];
    for(i=0;i<n;i++)
    {
        if(arrag[i]>max)
            max=arrag[i];
        if(arrag[i]<min)
            min=arrag[i];
        num=num+arrag[i];
    }
    num=num/n;
    return (num);
}
void main()
{
    float a[10]={99,45,78,97,100,67.5,89,92,66,43};
    printf("average=%.2f,max=%.2f,min=%.2f",average(a,10),max,min);
//    printf("max=%.2f,min=%.2f,average=%.2f\n",max,min,average(a,10));
}
使用VC6.0编译环境,请看注释部分。为什么第一个输出语句不能正确输出max 和 min 的值?但是后调用求平均值函数就能正常输出 为啥 为啥????
搜索更多相关主题的帖子: 变量 输出 全局 
2010-03-30 17:44
ldg628
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:3
帖 子:526
专家分:3036
注 册:2009-6-23
得分:20 
因为要按顺序处理语句
先调average,可以给后面的max,min赋好值;
如果先打印max,min,就是没有调用average时它俩的值
2010-03-30 17:48
winison
Rank: 2
等 级:论坛游民
帖 子:21
专家分:27
注 册:2007-10-27
得分:0 
我懂你的意思了,谢谢你!
2010-03-30 17:57
亚小南
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:69
专家分:136
注 册:2009-11-19
得分:0 
回复 楼主 winison
楼主
你要明白
函数只能返回一个值(return)
在你的代码中就是平均数num
而max 和min 在你的函数中都没有返回
所以main 函数没法得到这两个的值
这就是为什么要用指针,用数组
因为他们能够返回多个值
2010-04-01 12:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-301047-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.356778 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved