编写一个函数求数组中的最大值及下标。(要求用指针编写)
编写一个函数求数组中的最大值及下标。(要求用指针编写)下面是我自己写的,但是在TC里面运行报错。请各位高手帮我改错。谢谢!inty_max(int*p,intn){int...
编写一个函数求数组中的最大值及下标。(要求用指针编写)
下面是我自己写的,但是在TC里面运行报错。请各位高手帮我改错。谢谢!
int y_max(int *p,int n)
{ int max=*p,i,k=0;
for(i=0;i<=n;i++)
{if(max<*(p+i))
k=i;
}
return k;
}
#define N 10
#include<stdio.h>
main()
{int a[N]={12,25,45,18,13,78,23,55,63,78}
int i,m,max;
for(i=0;i<N;i++) printf("%d",a[i]);
m=y_max(a,N);
printf("max=a[%d]=%d",m,a[m]);
} 展开
下面是我自己写的,但是在TC里面运行报错。请各位高手帮我改错。谢谢!
int y_max(int *p,int n)
{ int max=*p,i,k=0;
for(i=0;i<=n;i++)
{if(max<*(p+i))
k=i;
}
return k;
}
#define N 10
#include<stdio.h>
main()
{int a[N]={12,25,45,18,13,78,23,55,63,78}
int i,m,max;
for(i=0;i<N;i++) printf("%d",a[i]);
m=y_max(a,N);
printf("max=a[%d]=%d",m,a[m]);
} 展开
4个回答
2009-03-13
展开全部
给,都已经改好了,具体的请看注释:
int y_max(int *p,int n)
{
int max=*p,i,k=0;
for(i=0;i<n;i++) ////这里判断到i<n,而不是i<=n
{
if(max<*(p+i))
{
k=i;
max=*(p+i);////记得要在这里更新一下max的记录
}
}
return k;
}
#define N 10
#include<stdio.h>
main()
{int a[N]={12,25,45,18,13,78,23,55,63,78};////记得最后要加分号
int i,m,max;
for(i=0;i<N;i++) printf("%d ",a[i]);
m=y_max(a,N);
printf("\n\nmax=a[%d]=%d ",m,a[m]);
}
int y_max(int *p,int n)
{
int max=*p,i,k=0;
for(i=0;i<n;i++) ////这里判断到i<n,而不是i<=n
{
if(max<*(p+i))
{
k=i;
max=*(p+i);////记得要在这里更新一下max的记录
}
}
return k;
}
#define N 10
#include<stdio.h>
main()
{int a[N]={12,25,45,18,13,78,23,55,63,78};////记得最后要加分号
int i,m,max;
for(i=0;i<N;i++) printf("%d ",a[i]);
m=y_max(a,N);
printf("\n\nmax=a[%d]=%d ",m,a[m]);
}
展开全部
给,都已经改好了,具体的请看注释:
int
y_max(int
*p,int
n)
{
int
max=*p,i,k=0;
for(i=0;i
main()
{int
a[N]={12,25,45,18,13,78,23,55,63,78};////记得最后要加分号
int
i,m,max;
for(i=0;i
评论
0
0
加载更多
int
y_max(int
*p,int
n)
{
int
max=*p,i,k=0;
for(i=0;i
main()
{int
a[N]={12,25,45,18,13,78,23,55,63,78};////记得最后要加分号
int
i,m,max;
for(i=0;i
评论
0
0
加载更多
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int y_max(int *p,int n)
{ int max=*p,i,k=0;
for(i=0;i<=n;i++)
{if(max<*(p+i))
k=i;
}
return k;
}
#define N 10
#include<stdio.h>
main()
{int a[N]={12,25,45,18,13,78,23,55,63,78} ;
int i,m,max;
for(i=0;i<N;i++) printf("%d\n",a[i]);
m=y_max(a,N);
printf("max=a[%d]=%d",m,a[m]);
}
那里少个分号
你用的编译器ms很老了。用新的随便调试一下就知道哪里出错了。比如我用的codeblocks
{ int max=*p,i,k=0;
for(i=0;i<=n;i++)
{if(max<*(p+i))
k=i;
}
return k;
}
#define N 10
#include<stdio.h>
main()
{int a[N]={12,25,45,18,13,78,23,55,63,78} ;
int i,m,max;
for(i=0;i<N;i++) printf("%d\n",a[i]);
m=y_max(a,N);
printf("max=a[%d]=%d",m,a[m]);
}
那里少个分号
你用的编译器ms很老了。用新的随便调试一下就知道哪里出错了。比如我用的codeblocks
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2009-03-13
展开全部
for(i=0;i<=n;i++)
n应该是数组的长度,那么就应该是i<n,其他的没问题
n应该是数组的长度,那么就应该是i<n,其他的没问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询