重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
您的程序有多处错误。既然是初学,就先把最基本的东西都弄清楚啊,否则别人都不愿意帮您。简单列出您的错误如下:
专注于为中小企业提供成都网站建设、做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业仁寿免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
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;i10;i++)
if(maxva[i])
maxv=a[i];
return(maxv);
}
int main()
{
int i,a[10],maxvalue;
printf("请输入10个数:\n");
for(i=0;i10;i++)
scanf("%d",a[i]);
maxvalue = max(a);//原代码max(a[10],i),a[10]只会传递一个数而不是数组
printf("最大的数是:%d\n",maxvalue);//您别漏了%d啊
}
#includestdio.h
int max(int n)
{int i,x,f;
scanf("%d",f);
for(i=1;in;i++)
{scanf("%d",x);
if(xf)f=x;
}
return f;
}
int main()
{int n;
printf("有几个数:");
scanf("%d",n);
printf("其中最大的数是:%d\n",max(n));
return 0;
}
#includestdio.h
int min;
int maxmin(int n)
{int i,x,f;
scanf("%d",f);
min=f;
for(i=1;in;i++)
{scanf("%d",x);
if(xf)f=x;
else if(xmin)min=x;
}
return f;
}
int main()
{int n,mm;
printf("有几个数:");
scanf("%d",n);
mm=maxmin(n);
printf("其中最大的数是:%d\n最小的数是:%d\n",mm,min);
return 0;
}
自定义函数实现
int max(int a,int b)
{
return ab?a:b;
}
#include"stdio.h"
voidInput_Max_Min(int*p,int*pl,int*ps){
inti;
printf("Pleaseenterthe10Numbers...\n");
for(*pl=*ps=i=0;i10;i++){//输入10个整数并判断大小
scanf("%d",p+i);
if(p[i]p[*ps])//
*ps=i;
if(p[i]p[*pl])//
*pl=i;
}
}
intmain(intargc,char*argv[]){
intm[10],ml,ms;
Input_Max_Min(m,ml,ms);//用数组首址和最大值及最小值位置记录变量地址调用自定义函数
printf("TheMAXism[%d]==%d\nTheMINism[%d]==%d\n",ml,m[ml],ms,m[ms]);//输出结果
return0;
}
扩展资料
c语言函数求两个数的最大值
声明一个求两个数最大值的函数
if(ab){
printf("最大值是%d",a);
}else{
printf("最大值是%d",b);
}
#includestdio.h
max(inta,intb){
//三木运算来求出最大值
intz=ab?a:b;
printf("最大值是%d",z);
}
main(){
intx,y;
scanf("%d%d",x,y);
//调用max函数
max(x,y);
}