任务描述:
编写函数,功能为返回数组中的最大值。
在主函数中输入10个整数,存入数组中,调用函数得到最大值输出。
输入样例:
1 2 3 4 5 6 7 8 9 0
输出样例:
9
#include
#define N 10
int a[10],i,j,k,max=0;
int f(int a[],int N){
for(i=0;iif(a[i]>max){
max=a[i];
}
return max;
}
return max;
}
int main(){
for(i=0;iscanf("%d",&a[i]);
}
printf("%d",f(a,N));
}
把第一个return max删除
把第10行代码删除,你这行代码导致这个数组只会比较一次a[i]和max的值,也就是结果要么返回a[0],要么max
主要问题在于:
你的数组定义应该是 int a[N],而不是 int a[10]。
你的f函数中有一个return语句在循环的内部,导致只能返回第一个元素的值。
你的主函数缺少return 0;语句。
#include<stdio.h>
#define N 10
int a[N],i,j,k,max=0;
int f(int a[],int N){
for(i=0;i<N;i++){
if(a[i]>max){
max=a[i];
}
}
return max;
}
int main(){
for(i=0;i<N;i++){
scanf("%d",&a[i]);
}
printf("%d",f(a,N));
return 0;
}