xiaohu168888 发表于 2015-12-21 20:07:57

数据传值问题

#include<stdio.h>
float a,average,max,min;
float v(float a,int n);
void main()
{
      int i ;
      float s;
      printf("input ten numbers: \n");
      for(i = 0;i < 10; i++)   
      {
            scanf("%6.3f",&a);
             s = v(a,10);          //这里为什么应该是s = v(a,10)
      }
   printf("average = %f\n max = %f\n min = %f\n",average,max,min);
   
}

float v(float a[],int n)
{
      int i;
      floats = 0,max = min = 0.0;
      s = s + a;
      average = s / n;
      for (i = 0;i < n; i++)
      {
            if(max < a)
            {
                  max = a;
            }
            else if(min > a)
            {
                  min = a;
            }
      }
      
}


s = v(a,10);这里为什么应该是s = v(a,10),有点想不通,小弟刚刚学这个,麻烦知道的大神告诉小弟下,感谢了。

小人 发表于 2015-12-21 20:44:59

v 是一个函数
s = v(a,10) 的意思就是s 等于 v函数的返回值
{:9_240:}

~风介~ 发表于 2015-12-21 20:46:27

感觉说不好......{:9_240:}@阴影中的曙光

阴影中的曙光 发表于 2015-12-21 21:29:14

你注意下v这个函数的函数声明第一个参数是float a,这是啥?这其实就是一个地址,所以你在调用时也应该传一个地址,a就是数组的第一个元素的地址,而你的a【i】,只不过是数组里的一个元素,是一个fpoat类型的数据

xiaohu168888 发表于 2015-12-21 22:25:24

阴影中的曙光 发表于 2015-12-21 21:29
你注意下v这个函数的函数声明第一个参数是float a,这是啥?这其实就是一个地址,所以你在调用时也应该 ...

谢谢了,可能我对数组还是有一点不能理解。
页: [1]
查看完整版本: 数据传值问题