user-0 提问: C语言 不知道哪有问题

回复:
user: user-1
content: 输出没有加实参。

user: user-0
content: 引用 3 楼 自信男孩的回复:#include<stdio.h> #include<math.h> #include<string.h>  int max(int arr[10], int len); int min(int arr[10],int len); float ave(int arr[10], int len);  //100 10 -125 -9 90 70 60 300 -250 0 int main() {     int arr[10];     printf("qing shu ru shi ge shu zi:\n");     int i;     for(i=0;i<10;i++)     {         scanf("%d",&arr[i]);     }     printf("max = %d \n",max(arr, 10));     printf("min = %d \n",min(arr, 10));     printf("ave = %lf \n",ave(arr, 10));      return 0; } int max(int arr[10],int len) {     int max = arr[0], i;     for(i = 1;i<len;i++)         if(arr[i]>max)             max=arr[i];     return(max); } int min(int arr[10],int len) {     int min=arr[0], i;     for(i = 1; i < len;i++)         if(arr[i]<min)             min=arr[i];     return(min);  } float ave(int arr[10],int len) {     int sum=0, i;     float ave;      for(i=0;i<10;i++)     {         sum=sum+arr[i];     }     ave = sum * 1.0/10;     return(ave); } 函数定义，声明和调用都有自己的语法规则，建议好好研究一下语法； 能在函数内定义的变量，不建议通过参数传递；否则参数多了影响函数调用的效率，自然影响程序的运行效率，同样是局部变量，在函数内定义可以减少实参的传递;  函数的定义也是需要有章法，通过精心设计出来的函数通用性，可移植性会比较好， 大佬  这个int len 是直接用的吗 不用事先测定一下吗？ 还有那个printf里面的max括号里面的为什么不写len而写10 还有 我试了吧那个声明函数写在main里面也可以运行 求解

user: user-0
content: 引用 3 楼 自信男孩的回复:#include<stdio.h> #include<math.h> #include<string.h>  int max(int arr[10], int len); int min(int arr[10],int len); float ave(int arr[10], int len);  //100 10 -125 -9 90 70 60 300 -250 0 int main() {     int arr[10];     printf("qing shu ru shi ge shu zi:\n");     int i;     for(i=0;i<10;i++)     {         scanf("%d",&arr[i]);     }     printf("max = %d \n",max(arr, 10));     printf("min = %d \n",min(arr, 10));     printf("ave = %lf \n",ave(arr, 10));      return 0; } int max(int arr[10],int len) {     int max = arr[0], i;     for(i = 1;i<len;i++)         if(arr[i]>max)             max=arr[i];     return(max); } int min(int arr[10],int len) {     int min=arr[0], i;     for(i = 1; i < len;i++)         if(arr[i]<min)             min=arr[i];     return(min);  } float ave(int arr[10],int len) {     int sum=0, i;     float ave;      for(i=0;i<10;i++)     {         sum=sum+arr[i];     }     ave = sum * 1.0/10;     return(ave); } 函数定义，声明和调用都有自己的语法规则，建议好好研究一下语法； 能在函数内定义的变量，不建议通过参数传递；否则参数多了影响函数调用的效率，自然影响程序的运行效率，同样是局部变量，在函数内定义可以减少实参的传递;  函数的定义也是需要有章法，通过精心设计出来的函数通用性，可移植性会比较好， 大神 我想问下  这里的len是直接用的吗？ 还有  printf里面的 max（max，10）的 10是什么意思 为什么不是len

user: user-2
content: #include<stdio.h> #include<math.h> #include<string.h>  int max(int arr[10], int len); int min(int arr[10],int len); float ave(int arr[10], int len);  //100 10 -125 -9 90 70 60 300 -250 0 int main() {     int arr[10];     printf("qing shu ru shi ge shu zi:\n");     int i;     for(i=0;i<10;i++)     {         scanf("%d",&arr[i]);     }     printf("max = %d \n",max(arr, 10));     printf("min = %d \n",min(arr, 10));     printf("ave = %lf \n",ave(arr, 10));      return 0; } int max(int arr[10],int len) {     int max = arr[0], i;     for(i = 1;i<len;i++)         if(arr[i]>max)             max=arr[i];     return(max); } int min(int arr[10],int len) {     int min=arr[0], i;     for(i = 1; i < len;i++)         if(arr[i]<min)             min=arr[i];     return(min);  } float ave(int arr[10],int len) {     int sum=0, i;     float ave;      for(i=0;i<10;i++)     {         sum=sum+arr[i];     }     ave = sum * 1.0/10;     return(ave); } 函数定义，声明和调用都有自己的语法规则，建议好好研究一下语法； 能在函数内定义的变量，不建议通过参数传递；否则参数多了影响函数调用的效率，自然影响程序的运行效率，同样是局部变量，在函数内定义可以减少实参的传递;  函数的定义也是需要有章法，通过精心设计出来的函数通用性，可移植性会比较好，

user: user-3
content: 下面这三行输出的只是函数的地址，并非函数返回的结果，如果需要返回的结果，你需要在后面加上参数  printf("max = %d \n",max); printf("min = %d \n",min); printf("ave = %lf \n",ave);  其次，max和min建议换个名字，否则可能和标准库听宏重名导致编译失败

user: user-4
content: 你没弄清函数声明定义和调用： 问题： int max(int arr[10],int i,int max); int min(int arr[10],int i,int min); float ave(int arr[10],int i,float ave,float sum);   这三行是函数声明，  应该放在main函数之前  a = max(arr, 0, 0) b = min(arr, 0, 10) c = ave(arr, 0, 0.0, 0.0)   这三行是函数调用。如果函数没有返回值，就不用前面的 a = ，b=，c=  修改： 1.把你那三行函数定义放在main之前。 2.printf("max = %d \n", max(arr, 0, 0));    printf("min = %d \n", min(arr, 0, 10));    printf("ave = %lf \n", ave(arr, 0, 0.0, 0.0)); 3.根据你这三个函数功能来看，不需要这么多变量传入。只需要数组进去。在函数体内部申请变量返回值即可。  看书要仔细。尤其是示例代码。