| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 635 人关注过本帖
标题:函数不能正确输出结果,求教
只看楼主 加入收藏
liqingyang
Rank: 2
等 级:论坛游民
帖 子:47
专家分:39
注 册:2010-2-24
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
函数不能正确输出结果,求教
#include"stdio.h"

float    avse(float    a[5])//求五门功课的平均成绩
{
    int    i;
    float    av=a[0],avs;
    for(i=1;i<5;i++)
        av+=a[i];
    avs=av/5;
   
    return    avs;
}

void    main()
{
    int    i;
    float    ss[5],s;
   
    printf("input 5 number:\n");
    for(i=0;i<5;i++)
        scanf("%f",&ss[i]);
    s=avse(ss);

    printf("s=%d\n",s);
   
}
//编译没有错误,为什么不能正确输出结果呢,一输出就是S=0;
搜索更多相关主题的帖子: 结果 输出 函数 
2010-09-07 18:08
jack10141
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:陕西西安
等 级:小飞侠
威 望:6
帖 子:706
专家分:2271
注 册:2010-8-10
收藏
得分:10 
以下是引用liqingyang在2010-9-7 18:08:04的发言:

#include"stdio.h"

float    avse(float    a[5])//求五门功课的平均成绩
{
    int    i;
    float    av=a[0],avs;
    for(i=1;i<5;i++)
        av+=a;
    avs=av/5;
   
    return    avs;
}

void    main()
{
    int    i;
    float    ss[5],s;
   
    printf("input 5 number:\n");
    for(i=0;i<5;i++)
        scanf("%f",&ss);
    s=avse(ss);

    printf("s=%d\n",s);
   
}
//编译没有错误,为什么不能正确输出结果呢,一输出就是S=0;
你的s 是浮点型的吧?为什么 %d 格式符??? 换成 %f 就OK

Coding就像一盒巧克力,你永远不会知道你会遇到什么BUG
别跟我说你是不能的,这让我愤怒,因为这侮辱了你的智慧
2010-09-07 18:17
encounter
Rank: 5Rank: 5
来 自:扬州
等 级:职业侠客
威 望:2
帖 子:150
专家分:359
注 册:2010-7-24
收藏
得分:10 
printf("s=%d\n",s);
显然应该用  %f  

printf中如果数据类型不对应
好像都是0
限于 int float double
char当然另当别论

[ 本帖最后由 encounter 于 2010-9-7 18:28 编辑 ]

ping   nbtstat   netstat   tracert    nat   at    ftp   telnet..................
2010-09-07 18:18
liqingyang
Rank: 2
等 级:论坛游民
帖 子:47
专家分:39
注 册:2010-2-24
收藏
得分:0 
唉,是俺太马虎了,谢谢两位提醒。
2010-09-08 14:27
阿全
Rank: 2
等 级:论坛游民
帖 子:16
专家分:14
注 册:2010-9-8
收藏
得分:0 
我给你改了一下,要注意给av初始赋值为零,不然会错,还有就是你的循环上下不一样,注意。我用的是浮点数,输出带有小数。
#include"stdio.h"
#include<stdlib.h>
float    avse(float    a[5])//求五门功课的平均成绩
{
    int    i;
    float avs,av=0;
    for(i=0;i<5;i++)
        av+=a[i];
    avs=av/5;
   
    return    avs;
}
int   main()
{
    int    i;
    float    a[5],s;
    printf("input 5 number:\n");
    for(i=0;i<5;i++)
        scanf("%f",&a[i]);
    s=avse(a);
   
    printf("s=%f\n",s);
    system("pause");
}
2010-09-09 14:35
gongyaping
Rank: 4
来 自:广东肇庆怀集
等 级:业余侠客
帖 子:174
专家分:257
注 册:2010-8-1
收藏
得分:0 
回帖得分顺便学习下,顶了。
2010-09-09 15:57
快速回复:函数不能正确输出结果,求教
数据加载中...
 
   



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

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