c语言 数组求最大值与最小值,并通过形参传回调用函数
编程题(c语言):编写一个函数,求含n个元素的整型数组a求最大值与最小值,并通过形参传回调用函数,并要编写测试函数;我的做法(错误的,求更正)#include<stdio...
编程题(c语言):编写一个函数,求含n个元素的整型数组a求最大值与最小值,并通过形参传回调用函数,并要编写测试函数;
我的做法(错误的,求更正)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void F(int *p,int *max,int *min)
{
int i;
*max=*p;*min=*p;
for(i=0;i<strlen(p);i++)
if(*max<*(p+i)) *max=*(p+i);
for(i=0;i<strlen(p);i++)
if(*min>*(p+i)) *min=*(p+i);
}
int main()
{
int a[6]={8,2,3,4,5,6},max,min;
F(a,&max,&min);
printf("%d %d\n",max,min);
system("pause");
return 0;
} 展开
我的做法(错误的,求更正)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void F(int *p,int *max,int *min)
{
int i;
*max=*p;*min=*p;
for(i=0;i<strlen(p);i++)
if(*max<*(p+i)) *max=*(p+i);
for(i=0;i<strlen(p);i++)
if(*min>*(p+i)) *min=*(p+i);
}
int main()
{
int a[6]={8,2,3,4,5,6},max,min;
F(a,&max,&min);
printf("%d %d\n",max,min);
system("pause");
return 0;
} 展开
3个回答
展开全部
#include<stdio.h>
#include<stdlib.h>
//因为是整型数组,必须要传递数组大小
void F(int *p,int size , int *max,int *min)
{
int i;
*max=*p;*min=*p;
for(i=1;i<size;i++)
{
if(*max<*(p+i)) *max=*(p+i);
if(*min>*(p+i)) *min=*(p+i);
}
}
int main()
{
int a[6]={8,2,3,4,5,6},max,min;
F(a,6,&max,&min);
printf("%d %d\n",max,min);
system("pause");
return 0;
}
#include<stdlib.h>
//因为是整型数组,必须要传递数组大小
void F(int *p,int size , int *max,int *min)
{
int i;
*max=*p;*min=*p;
for(i=1;i<size;i++)
{
if(*max<*(p+i)) *max=*(p+i);
if(*min>*(p+i)) *min=*(p+i);
}
}
int main()
{
int a[6]={8,2,3,4,5,6},max,min;
F(a,6,&max,&min);
printf("%d %d\n",max,min);
system("pause");
return 0;
}
展开全部
void F(int *p,int *max,int *min,int n)//strlen只适合于字符串,以'\0'为标志
{
int i;
*max=*p;*min=*p;
for(i=0;i<n;i++)
if(*max<*(p+i)) *max=*(p+i);
for(i=0;i<n;i++)
if(*min>*(p+i)) *min=*(p+i);
}
int main()
{
int a[6]={8,2,3,4,5,6},max,min;
F(a,&max,&min,6);
printf("%d %d\n",max,min);
system("pause");
return 0;
}
{
int i;
*max=*p;*min=*p;
for(i=0;i<n;i++)
if(*max<*(p+i)) *max=*(p+i);
for(i=0;i<n;i++)
if(*min>*(p+i)) *min=*(p+i);
}
int main()
{
int a[6]={8,2,3,4,5,6},max,min;
F(a,&max,&min,6);
printf("%d %d\n",max,min);
system("pause");
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a是整形数组,不是字符串,你不能用strlen取长度。
再加个长度参数len传进去就好了。
void F(int *p,int len, int *max,int *min)
再加个长度参数len传进去就好了。
void F(int *p,int len, int *max,int *min)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询