ACM界萌新羽 发表于 2018-1-13 23:21:37

关于数组名传递参数的问题( 用的是VS2017,一直提示错误,我太笨了,实在找不出来...

问题描述:有一个一维数组score,内放10个学生成绩,求平均成绩(写一个average函数求平均成绩)

我写的代码如下:
#include<stdio.h>
#include<math.h>
int main()
{
        int avg;
        int score;
        int average(score);
        printf("请输入十个学生成绩:\n");
        for (int i=0; i < 10; i++)
        {
                scanf("%-4d",&score);
        }
        avg = average(score);
        printf("这十个学生的平均成绩是:%d\n", avg);
}
int average(int a)
{
        int avg,sum=0 ;
        for (int i = 0; i < 10; i++)
        {
                sum += a;
        }
        avg = sum / 10;
        return avg;
}

ba21 发表于 2018-1-13 23:38:34

代码要规范。输入输出的格式化字符要用对,比如   scanf("%-4d" 有这样用的吗?

还有一点。算成绩怎么可能是int, 怎么想也应该是会有小数的吧。

参考代码:
#include<stdio.h>
#include<math.h>

#define NUM 10

double average(double score[]);

int main(void)
{
      double avg;
      double score;      
                int i;

      printf("请输入十个学生成绩:\n");
      for (i=0; i < NUM; i++)
      {
                scanf("%lf",&score);
      }
      avg = average(score);
      printf("这十个学生的平均成绩是:%.2f\n", avg);

                return 0;
}

double average(double a[])
{               
                double avg,sum=0 ;
      int i;

      for (i = 0; i < NUM; i++)
      {
                sum += a;
      }
      avg = sum / NUM;
      return avg;
}

BngThea 发表于 2018-1-15 09:26:32

数组传递时无法将其长度直接传递,请改写为
int average(int a[], int len)
调用时用
avg = average(score,10);
页: [1]
查看完整版本: 关于数组名传递参数的问题( 用的是VS2017,一直提示错误,我太笨了,实在找不出来...