当前位置: 代码迷 >> C语言 >> [求助]一个指针和数组的小程序,怎么弄都不对,只好请各位帮帮忙了
  详细解决方案

[求助]一个指针和数组的小程序,怎么弄都不对,只好请各位帮帮忙了

热度:96   发布时间:2007-07-12 23:03:56.0
[求助]一个指针和数组的小程序,怎么弄都不对,只好请各位帮帮忙了
这个小程序怎么都没弄对,还得请高人帮下忙了。
程序的功能是输入一个十个元素的数组,通过一个max子函数返回最大数组的下标,是主页上的教程的例程。不过有错误,好像是函数定义这一块的问题,麻烦各位给看看了。

#include <stdio.h>
main()
{
int *max();
int n,a[10],*s,i;
for(i=0;i<10;i++) /* 输入数据*/
scanf("%d",a+i);
s=max(a,10); /*函数调用*/
printf("max=%d,index=%d\n",*s,s-a);
}
int *max(int *a,int n) /*定义返回指针的函数*/
{
int *p,*t; /* p 用于跟踪数组,t用于记录最大值元素的地址*/
for(p=a,t=a;p-a<n;p++)
if(*p>*t) t=p;
return t;
}
搜索更多相关的解决方案: 指针  

----------------解决方案--------------------------------------------------------
我放在Visual C++里面编译后没有错误啊


----------------解决方案--------------------------------------------------------
如实在要说错误,这里跟声明对不上int *max(); VS int *max(int *a,int n)
----------------解决方案--------------------------------------------------------
此程序在tc环境下运行也没错误啊
----------------解决方案--------------------------------------------------------
c会检查参数错误吗?不会吧,所以 我觉得就这样就对了
----------------解决方案--------------------------------------------------------
狂晕,我去掉那些注释就可以了……


#include <stdio.h>
main()
{
int *max(int *a,int n);
int n,a[10],*s,i;
for(i=0;i<10;i++)
scanf("%d",a+i);
s=max(a,10);
printf("max=%d,index=%d\n",*s,s-a);
}

int *max(int *a,int n)
{
int *p,*t;
for(p=a,t=a;p-a<n;p++)
if(*p>*t) t=p;
return t;
}

那么,是不是这样就是完全正确的了?


另外,用指针和数组地址之差也可以作为数组的下标?那么指针的值是不是就是和数组下标一样的单位?我不知道是不是可以这么表述…大概就是这个意思了

[此贴子已经被作者于2007-7-13 0:19:12编辑过]


----------------解决方案--------------------------------------------------------
  相关解决方案