C语言 不知道哪有问题

qq_41033862 大学生  2017-11-16 09:19:51
#include<stdio.h>
#include<math.h>
#include<string.h>
//100 10 -125 -9 90 70 60 300 -250 0
int main()
{
int arr[10];
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);
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);
printf("min = %d \n",min);
printf("ave = %lf \n",ave);
return 0;
}
int max(int arr[10],int i,int max)
{ max=arr[0];
for(i=0;i<10;i++)
if(arr[i]>max)
{
max=arr[i];
}
return(max);
}
int min(int arr[10],int i,int min)
{
min=arr[i];
for(i=0;i<10;i++)
if(arr[i]<min)
{
min=arr[i];
}
return(min);

}
float ave(int arr[10],int i,float ave,float sum)
{
sum=0;
for(i=0;i<10;i++)
{
sum=sum+arr[i];
}
ave=(float)sum/10;
return(ave);
}
求大神解答
...全文
191 7 点赞 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
jena_wy 2017-11-22
输出没有加实参。
  • 打赏
  • 举报
回复
qq_41033862 2017-11-21
引用 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里面也可以运行 求解
  • 打赏
  • 举报
回复
qq_41033862 2017-11-19
引用 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
  • 打赏
  • 举报
回复
自信男孩 2017-11-17
#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);
}
函数定义,声明和调用都有自己的语法规则,建议好好研究一下语法; 能在函数内定义的变量,不建议通过参数传递;否则参数多了影响函数调用的效率,自然影响程序的运行效率,同样是局部变量,在函数内定义可以减少实参的传递; 函数的定义也是需要有章法,通过精心设计出来的函数通用性,可移植性会比较好,
  • 打赏
  • 举报
回复
paschen 2017-11-16
下面这三行输出的只是函数的地址,并非函数返回的结果,如果需要返回的结果,你需要在后面加上参数 printf("max = %d \n",max); printf("min = %d \n",min); printf("ave = %lf \n",ave); 其次,max和min建议换个名字,否则可能和标准库听宏重名导致编译失败
  • 打赏
  • 举报
回复
你没弄清函数声明定义和调用: 问题: 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.根据你这三个函数功能来看,不需要这么多变量传入。只需要数组进去。在函数体内部申请变量返回值即可。 看书要仔细。尤其是示例代码。
  • 打赏
  • 举报
回复
相关推荐
发帖
C语言
加入

6.5w+

社区成员

C语言相关问题讨论
申请成为版主
帖子事件
创建了帖子
2017-11-16 09:19
社区公告
暂无公告