您的程序有多处错误。既然是初学,就先把最基本的东西都弄清楚啊,否则别人都不愿意帮您。简单列出您的错误如下:
创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计、成都网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的鼎城网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
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啊
}
#include stdio.h
int max(int a,int b);
int main(void)
{
int a,b,c;
printf("输入两个整数:");
scanf("%d%d",a,b);
c=max(a,b);
printf("较大的数是:%d\n",c);
return 0;
}
int max(int a,int b)
{
if(ab)
return a;
else
return b;
}
思路:定义一个函数int fun(int a[]),该函数通过传递的参数数组依次遍历,寻找最大值,最后返回最大值,主函数输入数组,调用该函数输出最大值。
参考代码:
#includestdio.h
#define n 10
int fun(int a[]){//求数组a的最大值函数
int i,max=a[0];
for(i=1;in;i++)
if(maxa[i]) max=a[i];
return max;
}
int main()
{
int a[n],i;
for(i=0;i10;i++)
scanf("%d",a[i]);
printf("数组最大值为%d\n",fun(a));
return 0;
}
/*
1 5 9 7 3 8 6 4 2 0
数组最大值为9
*/
C语言中输入5个整数,求其中的最大数的函数实现的一个可能的代码如下:
#include stdio.h// 定义一个函数,用于返回两个整数中较大的一个int max(int a, int b){ if (a b) return a; else
return b;
}int main(){ int i, n, num, max_num; printf("请输入要输入的整数个数:"); scanf("%d", n); // 从标准输入读取整数个数
printf("请输入%d个整数:", n); scanf("%d", num); // 从标准输入读取第一个整数
max_num = num; // 将第一个整数赋值给max_num
for (i = 1; i n; i++) // 循环n-1次
{ scanf("%d", num); // 从标准输入读取下一个整数
max_num = max(max_num, num); // 调用max函数,更新max_num的值
} printf("最大的整数是:%d\n", max_num); // 输出最大的整数
return 0;
}