c语言函数指针 问题
/*定义指针类型函数fun,功能为查找数组中存放最大值的元素地址,输出该最大值。*//*能不能帮我看看哪儿错了,用vc6.0编译的。*/#include<stdio.h>...
/*定义指针类型函数fun,功能为查找数组中存放最大值的元素地址,输出该最大值。*/
/*能不能帮我看看哪儿错了,用vc6.0编译的。*/
#include<stdio.h>
#include<conio.h>
int main()
{
int *fun(int,int);
int p[10]={1,2,3,9,4,5,6,7,8,0};
int* a;
a=fun(p,10);
printf("%s\n",a);
getch();
return 0;
}
int* fun(int p[10],int n)
{
int *pt;
int max=p[0],i=1;
for(i;i<n;i++)
{
if(p[i]>max)
{
max=p[i];
pt=&p[i];
}
}
printf("&d\n",max);
return (pt);
} 展开
/*能不能帮我看看哪儿错了,用vc6.0编译的。*/
#include<stdio.h>
#include<conio.h>
int main()
{
int *fun(int,int);
int p[10]={1,2,3,9,4,5,6,7,8,0};
int* a;
a=fun(p,10);
printf("%s\n",a);
getch();
return 0;
}
int* fun(int p[10],int n)
{
int *pt;
int max=p[0],i=1;
for(i;i<n;i++)
{
if(p[i]>max)
{
max=p[i];
pt=&p[i];
}
}
printf("&d\n",max);
return (pt);
} 展开
3个回答
展开全部
//下面是正确的,改过的地方已标注。
#include<stdio.h>
#include<conio.h>
int main()
{
int *fun(int *,int); //改过!改过!改过!改过!
int p[10]={1,2,3,9,4,5,6,7,8,0};
int* a;
a=fun(p,10);
printf("%d\n",*a); //改过!改过!改过!改过!
getch();
return 0;
}
int* fun(int *p,int n) //改过!改过!改过!改过!
{
int *pt=&p[0]; //改过!改过!改过!改过!
int max=p[0],i=1;
for(i;i<n;i++)
{
if(p[i]>max)
{
max=p[i];
pt=&p[i];
}
}
printf("%d\n",max); //改过!改过!改过!改过!
return (pt);
}
#include<stdio.h>
#include<conio.h>
int main()
{
int *fun(int *,int); //改过!改过!改过!改过!
int p[10]={1,2,3,9,4,5,6,7,8,0};
int* a;
a=fun(p,10);
printf("%d\n",*a); //改过!改过!改过!改过!
getch();
return 0;
}
int* fun(int *p,int n) //改过!改过!改过!改过!
{
int *pt=&p[0]; //改过!改过!改过!改过!
int max=p[0],i=1;
for(i;i<n;i++)
{
if(p[i]>max)
{
max=p[i];
pt=&p[i];
}
}
printf("%d\n",max); //改过!改过!改过!改过!
return (pt);
}
追问
先谢过了 很正确的结果。我在用子函数的时候 形参用成了数组 怎么就错了?
展开全部
#include<stdio.h>
int main()
{
int *fun(int*,int);
int p[10]={1,2,3,9,4,5,6,7,8,0};
int* a;
a=fun(p,10);
printf("%d\n",*a);
getchar();
return 0;
}
int* fun(int p[10],int n)
{
int *pt;
int max=p[0],i=1;
for(i;i<n;i++)
{
if(p[i]>max)
{
max=p[i];
pt=&p[i];
}
}
printf("%d\n",max);
return (pt);
}
int main()
{
int *fun(int*,int);
int p[10]={1,2,3,9,4,5,6,7,8,0};
int* a;
a=fun(p,10);
printf("%d\n",*a);
getchar();
return 0;
}
int* fun(int p[10],int n)
{
int *pt;
int max=p[0],i=1;
for(i;i<n;i++)
{
if(p[i]>max)
{
max=p[i];
pt=&p[i];
}
}
printf("%d\n",max);
return (pt);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
printf("%s\n",a);
这个地方,不能用%s输出
%s是输出字符串用的
指针用%p
这个地方,不能用%s输出
%s是输出字符串用的
指针用%p
更多追问追答
追问
还是提示有错误:error C2664: 'fun' : cannot convert parameter 1 from 'int [10]' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
追答
Sorry,我当时只是大体看了下,没有实际运行。
形参不能用数组应该是VC6的问题。我用VC2010的时候是可以用数组形式表示的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询