| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 367 人关注过本帖
标题:关于外部变量的问题?
只看楼主 加入收藏
keepc
Rank: 1
等 级:禁止访问
帖 子:61
专家分:9
注 册:2009-11-15
结帖率:76.92%
收藏
已结贴  问题点数:20 回复次数:2 
关于外部变量的问题?
#include "stdafx.h"

#define N 5

float max,min;
float avg(float a[],int n);

int main(int argc, char* argv[])
{
    float score[N];
    int i;

    for(i = 0;i < N;i++)
    {
        printf("请输入第%d个学生成绩: ",i + 1);
        scanf("%f",&score[i]);
    }

    printf("max = %.2f     min = %.2f\n",max,min);
    printf("平均成绩: %.2f\n最高成绩: %.2f\n最低成绩: %.2f\n",avg(score,N),max,min);
    return 0;
}

float avg(float a[],int n)
{
    float sum = 0.0f;
    int i;

    max = min = a[0];
    printf("max = %.2f\nmin = %.2f\n",max,min);
    for(i = 0;i < n;i++)
    {
        sum += a[i];
        if(a[i] > max)
            max = a[i];
        if(a[i] < min)
            min = a[i];
    }
    printf("max = %.2f\nmin = %.2f\n",max,min);
    return sum / n;
}

输入以下数据:
1
2
3
4
5

结果得出 最大值max=0,最小值min=0

太奇怪了!!max 和 min 是外部变量,已经在函数内部里修改了,为什么还会得出0啊??
搜索更多相关主题的帖子: 变量 
2009-11-16 23:12
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:20 
不是外部变量,是全局变量。
你在输出max和min的时候根本没有调用自函数,其值当然为零了。
2009-11-16 23:20
keepc
Rank: 1
等 级:禁止访问
帖 子:61
专家分:9
注 册:2009-11-15
收藏
得分:0 
恩,谢谢
2009-11-16 23:47
快速回复:关于外部变量的问题?
数据加载中...
 
   



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

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