阿Cxi 发表于 2021-1-11 13:42:31

数组名做函数参数

#include <stdio.h>
int average(int x);
int main()
{
        int i,a;
        for (i=0;i<10;i++)
        {
                scanf("%d",&a);
        }
        average(a);
}
int average(int x)
{
        int i,sum=0,average;
        for(i=0;i<10;i++)
        {
                sum=sum+x;
        }
        average = sum/10;
        return average;
}

不知道为啥输入10个数以后直接就结束了,不会出来平均值,请大神指点一下,多谢

阿Cxi 发表于 2021-1-11 13:48:38

#include <stdio.h>
int average(int x);
int main()
{
        int i,a;
        for (i=0;i<10;i++)
        {
                scanf("%d",&a);
        }
        average(a);
}
int average(int x)
{
        int i,sum=0,c;
        for(i=0;i<10;i++)
        {
                sum=sum+x;
        }
        c = sum/10;
        printf("%d",c);
        return c;
}
自己检查出来了一些错误,加以改正,不过还是不行

心驰神往 发表于 2021-1-11 13:58:07

本帖最后由 心驰神往 于 2021-1-11 14:02 编辑

阿Cxi 发表于 2021-1-11 13:48
#include
int average(int x);
int main()


我运行你这个可以算出十个数平均数啊,不过好像算的不准确?

jackz007 发表于 2021-1-11 14:04:04

本帖最后由 jackz007 于 2021-1-11 14:06 编辑

    你只调用了函数,却忘记打印结果
    这一句
      average(a);
    改为
      printf("%d\n" , average(a)) ;

心驰神往 发表于 2021-1-11 14:08:32

jackz007 发表于 2021-1-11 14:04
你只调用了函数,却忘记打印结果
    这一句



下面那个程序函数里面已经有打印了

jackz007 发表于 2021-1-11 14:25:26

心驰神往 发表于 2021-1-11 14:08
下面那个程序函数里面已经有打印了

       改过了,那就没有问题了呀
D:\0002.Exercise\C>g++ -o x x.c

D:\0002.Exercise\C>x
2 4 6 8 10 12 14 16 18 20
11
D:\0002.Exercise\C>

心驰神往 发表于 2021-1-11 14:38:48

jackz007 发表于 2021-1-11 14:25
改过了,那就没有问题了呀

int average(int x)
{
      int i,sum=0;
double c;
      for(i=0;i<10;i++)
      {
                sum=sum+x;
      }
      c = sum*1.0/10;
      printf("%f",c);
      return c;
}
感觉这样改比较准确,不然输入 1 2 3 4 5 6 7 8 9 10,输出的是5

阿Cxi 发表于 2021-1-11 17:56:39

弄好啦,谢谢各位了
页: [1]
查看完整版本: 数组名做函数参数