C语言 调用函数求最大值问题

C语言 调用函数求最大值问题
#include "stdafx.h"
#include "stdio.h"

int max(int a[10],int i)
{
int a[10];
int max=a[0];
for(i=1;i<10;i++)
if(max max=a[i];
return(max);
}
int main()
{
int i,a[10];
printf("请输入10个数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
max(a[10],i);
printf("最大的数是:\n",max);

}

在调试的时候,出现这样的情况:
请输入10个数:
0 1 2 3 4 5 6 7 8 9
最大的数是:
按任意键结束。。。

为什么会没有输出?是函数调用出了问题吗?到底是哪里的错啊,本人是初学者,求告人指点!
好像还是不行,最好能重新写一遍,看看你们的能不能运行的了
您的程序有多处错误。既然是初学,就先把最基本的东西都弄清楚啊,否则别人都不愿意帮您。简单列出您的错误如下:

1)在max函数内又声明了a[10],这和传递给max函数的参数同名。
2)在max函数内声明了一个变量max,这与max函数又是同名,虽然不一定会出错,仿森卜但需要尽量避免啊。
3)int max(int a[], int i)是正确的写法,不必写int a[10]。
4)在主函数main中的max(a[10],i)就是错误的写法了,把数组传递给函数时,只能写数组名a,不能写a[10],a[10]只代表了数组中的一个元素。
5)printf中的那个max,属于未声明就使用的变量,而且又与函数max同名。
给个春乱修改后的程序,您自己对照吧。
6)printf函数没指定最大值的输出位置与格式。

#include "stdafx.h"
#include "stdio.h"

int max(int a[])//原代码中将i传递备穗进来,毫无必要
{
int maxv=a[0];//原代码取max,与函数同名,要避免
int i;
for(i=1;i<10;i++)
if(maxv maxv=a[i];
return(maxv);
}
int main()
{
int i,a[10],maxvalue;
printf("请输入10个数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
maxvalue = max(a);//原代码max(a[10],i),a[10]只会传递一个数而不是数组
printf("最大的数是:%d\n",maxvalue);//您别漏了%d啊
}
printf("最大的租燃数察型肆是:\败轿n",max);-->printf("最大的数是:%d\n",max);
printf("最大的数是:%d\n",max(a[10],10)); 这样应该就可以了!
← 上一篇: 下一篇: →