| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2044 人关注过本帖
标题:C语言函数问题:请问为什么这个函数分段就不行呢?求解!!
只看楼主 加入收藏
庄子小五
Rank: 1
等 级:新手上路
帖 子:26
专家分:4
注 册:2016-10-23
结帖率:50%
收藏
已结贴  问题点数:10 回复次数:5 
C语言函数问题:请问为什么这个函数分段就不行呢?求解!!
这个程序是用函数来写出和和平均数


#include <stdio.h>
int main()
{   int add(int a[3]);
    float ave(int a[3]);
    int a[3],i,m,t;
    for(i=0;i<3;i++)
    scanf("%d",&a[i]);
    m=add(a[3]);
    t=ave(a[3]);
    printf("%d\n%.1f",m,t);
}

int add(int a[3])
{
    int a[3],m;
    m=a[0]+a[1]+a[2];
    return (m);
}

float ave(int a[3])
{
    int a[3],j,k;
    j=a[0]+a[1]+a[2];
    k=j\3;
    return (k);
}





  请问错在哪呢? 希望大神帮助QAQ~
搜索更多相关主题的帖子: include C语言 平均数 
2016-12-10 22:19
yangwawa
Rank: 2
等 级:论坛游民
威 望:3
帖 子:15
专家分:67
注 册:2016-11-26
收藏
得分:4 
#include <stdio.h>
int main()
{  
    int a[3],i,m,t;
    for(i=0;i<3;i++)
    scanf("%d",&a[i]);
    int add(int a[3]);
    float ave(int a[3]);
    m=add(a);
    t=ave(a);
    printf("%d\n%.1f",m,t);
    return 0;
}

int add(int a[3])
{
    int m;
    m=a[0]+a[1]+a[2];
    return (m);
}

float ave(int a[3])
{
    float j,k;
    j=(float)(a[0]+a[1]+a[2]);
    k=j/3;
    return k;
}
收到的鲜花
  • 庄子小五2016-12-12 14:42 送鲜花  3朵   附言:知道了,多谢答疑
2016-12-10 23:31
yangwawa
Rank: 2
等 级:论坛游民
威 望:3
帖 子:15
专家分:67
注 册:2016-11-26
收藏
得分:0 
你试一下 我没有运行
参数传递时候,数组只用数组名就行了,不用带下标
2016-12-10 23:32
鸿蒙之灵
Rank: 4
来 自:异次元裂缝
等 级:贵宾
威 望:11
帖 子:126
专家分:244
注 册:2016-8-22
收藏
得分:5 
正如楼上所说,你的形参格式不对,不过我看了一下楼主的代码,还有楼上的,你们的代码中,对数据结构把控不严格,也就是说,从int型赋值给float型,会导致数据丢失,可能会出现输出结果不正确的现象,针对于此,我对楼上的代码做了些许修改:

程序代码:
double add(int a[3])
{
    double m=0;
    m=a[0]+a[1]+a[2];
    return (m);
}

float ave(int a[3])
{
    double j=0,k=0;
    j=a[0]+a[1]+a[2];
    k=j/3.0;
    return k;
}
int main()
{  
    int a[3];
    double m,t;
    for(int i=0;i<3;i++)
        scanf("%d",&a[i]);
    m=add(a);
    t=ave(a);
    printf("%.5f\n%.5f",m,t);
    system("pause");
    return 0;
}
收到的鲜花
  • 庄子小五2016-12-12 14:42 送鲜花  3朵   附言:确实不够严谨,我会多多注意的

对待编程,要像对待情人一样
2016-12-12 09:37
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:1 
既然贴在 C++板块,……

程序代码:
#include <iostream>
#include <iomanip>
#include <algorithm>
#include <numeric>
#include <iterator>
#include <type_traits>
using namespace std;

int main( void )
{
    int a[3];

    using valuetype_t = remove_reference_t<decltype(*a)>; // 推导出a数组的元素类型
    const size_t arrsize = extent<decltype(a)>::value; // 推导出a数组的元素数目
    copy_n( istream_iterator<valuetype_t>(cin), arrsize, a ); // 输入
    valuetype_t sum = std::accumulate( begin(a), end(a), valuetype_t() ); // 求和
    double avg = sum * 1.0/arrsize; // 求均值
  
    // 输出
    cout << "Sum = " << sum << '\n'
         << "Avg = " << fixed << setprecision(1) << avg << endl;

    return 0;
}
输入
1 2 5
输出
Sum = 8
Avg = 2.7
收到的鲜花
  • 庄子小五2016-12-12 14:43 送鲜花  3朵   附言:这两个有什么不同吗
2016-12-12 10:48
庄子小五
Rank: 1
等 级:新手上路
帖 子:26
专家分:4
注 册:2016-10-23
收藏
得分:0 
回复 2楼 yangwawa
这个平均数那里不对,只输出0.0
2016-12-12 15:03
快速回复:C语言函数问题:请问为什么这个函数分段就不行呢?求解!!
数据加载中...
 
   



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

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