标题:两个程序大意相同 为何输出不同。。
只看楼主
StarFall
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:193
专家分:553
注 册:2012-10-1
结帖率:100%
已结贴  问题点数:12 回复次数:7 
两个程序大意相同 为何输出不同。。
这个是课文的, 最后一段用了我的代码, 输出正常。
#include <stdio.h>
float Max=0,Min=0;
int main(void)
{
    float average(float array[],int n);
    float ave,score[10]={43,53.6,54,32,57,24,64,43,21,23};
    ave=average(score,10);
    printf("Max=%6.2f\nMin=%6.2f\naverage=%6.2f\n",Max,Min,ave);
    return 0;
}
float average(float array[],int n)
{
    int i;
    float sum=0;
        Max=array[0];
        Min=array[0];
    for(i=0;i<=n-1;i++)
    {
        sum+=array[i];
        array[i]>Max?Max=array[i]:0;
        array[i]<Min?Min=array[i]:0;
    }
    return(sum/n);
}


然后是我的,
#include <stdio.h>
float Max=0,Min=0;
float average(float a[],int n);
int main(void)
{
    float a[10];
    int i;
    for(i=0;i<=9;i++)
    {
        printf("请为第%d个数赋值:",i+1);
        scanf("%f",&a[i]);
    }
    printf("平均分%3.2f 最高分%3.2f 最低分%3.2f\n",average(a,10),Max,Min);
    return 0;
}

float average(float a[],int n)
{
    int i;
    float sum=0;
        Max=a[0];
        Min=a[0];
    for(i=0;i<=n-1;i++)
    {
        sum+=a[i];
        a[i]>Max?Max=a[i]:0;
        a[i]<Min?Min=a[i]:0;
    }
    return(sum/n);
}


不知道为什么输出Max,Min总是0,   课本上的那个因为输入麻烦,我就直接赋值了。  

求解,   我觉得两个应该一样的- - 为什么我的Max,Min输出始终是0...
搜索更多相关主题的帖子: return include average 
2012-10-13 18:16
ldzy
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:64
专家分:339
注 册:2012-7-30
得分:12 
把printf("平均分%3.2f 最高分%3.2f 最低分%3.2f\n",average(a,10),Max,Min);语句中的Max,Min放到average(a,10)之前试试。
2012-10-13 18:37
StarFall
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:193
专家分:553
注 册:2012-10-1
得分:0 
以下是引用ldzy在2012-10-13 18:37:39的发言:

把printf("平均分%3.2f 最高分%3.2f 最低分%3.2f\n",average(a,10),Max,Min);语句中的Max,Min放到average(a,10)之前试试。
成功输出- -  这是为什么。。

去追寻更高的技术领域。永不停止。
2012-10-13 18:54
StarFall
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:193
专家分:553
注 册:2012-10-1
得分:0 
以下是引用ldzy在2012-10-13 18:37:39的发言:

把printf("平均分%3.2f 最高分%3.2f 最低分%3.2f\n",average(a,10),Max,Min);语句中的Max,Min放到average(a,10)之前试试。
应该可以理解为在average之后average程序就结束了,没值了?- -   

去追寻更高的技术领域。永不停止。
2012-10-13 18:57
ldzy
Rank: 5Rank: 5
等 级:职业侠客
威 望:1
帖 子:64
专家分:339
注 册:2012-7-30
得分:0 
printf()函数语句变量的执行顺序吧(也许),试试printf("%d %d",i,i++);之类的语句看输出。
2012-10-13 19:10
沧海殇田
Rank: 1
等 级:新手上路
帖 子:6
专家分:2
注 册:2012-10-4
得分:0 
[em01]
2012-10-13 23:07
孟星魂
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2012-10-12
得分:0 
计算平均值
#include <stdio.h>
void main()
{
    float average(float array[],int n);
    float ave,score[10]={43,53.6,54,32,57,24,64,43,21,23};
    ave=average(score,10);
    printf("average=%6.2f\n",ave);
}
    float average(float array[],int n)
{
    int i;
    float sum=0;
    for(i=0;i<=n-1;i++)
    {
        sum+=array[i];
    }
    return(sum/n);
}

[url=http://www.gqtong.mobi/]中国G球通[/url]
2012-10-15 14:13
pengzhuo2008
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:29
专家分:68
注 册:2012-9-28
得分:0 
这两程序效果没区别啊
你用的啥编译的?

1+1=2
2012-10-15 15:08



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




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

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