从键盘输入5个整数,找出最大值分别用数组和指针两种方法实现,输入、输出主函数实现,比较在于函数实现

如题所述

第1个回答  2011-06-08
#include<stdio.h>
#define N 5
int subFunone(int a[N]);
int subFuntwo(int *p);
int main()
{
int a[N];
int i;
//输入
for(i =0;i<N;i++)
{
scanf("%d",&a[i]);
}

//输出
printf("max = %d\n",subFunone(a)); //使用数组
printf("max = %d",subFuntwo(a)); //使用指针。
return 0;
}
int subFunone(int a[N])
{
int i;
int max=0;
for(i =0;i<N;i++)
{
if(a[i] > max)
{
max = a[i];
}
}
return max;
}

int subFuntwo(int *p)
{
int i;
int max=0;
for(i =0;i<N;i++)
{
if(*(p+i) > max)
{
max = *(p+i);
}
}
return max;
}追问

可以再简单点(简化)吗????谢谢先

追答

两个子函数,分别是不同的两种实现方法,这是根据要求来的。如果只是简单的求最大值,其实一个子函数就够了。(两个子函数的功能是一样的。)

追问

分开来是怎样的,??谢谢

追答

#include
#define N 5
int subFunone(int a[N]);
int main()
{
int a[N];
int i;
for(i =0;i max)
{
max = a[i];
}
}
return max;
}

第2个回答  推荐于2016-07-02
#include<stdio.h>
max(int a[])
{int max=a[0],i;
for(i=0;i<5;i++)
if(max<a[i])
max=a[i];
return(max);
}
max1(int *p)
{int max=*p;
while(*p!='\0')
{if(max<*p)
max=*p;
p++;}
return(max);
}
main()
{int a[5],i;
for(i=0;i<5;i++)
scanf("%d",&a[i]);
a[i]='\0';
printf("最大的数为:%d,%d\n",max(a),max1(a));
}本回答被提问者采纳
相似回答