C语言 利用指针实现求数组元素中的最大值和最小值

#include<stdio.h>
#define N 10
void main()
{
int *p,*t,a[N],i;
for(i=0;i<N;i++)
scanf("%d",&a[i]);
p=a;
t=a;
for(i=1;i<N;i++)
{
if(*p<*(p+i))
p=(p+i);
else if(*t>*(t+i))
t=(t+i);
}
printf("%d %d\n",*p,*t);
}
我那里有问题 请高人指点…… 谢谢……
1那个是从1开始比较 这个是对的
下面那个为什么错 你没说明白啊~

for(i=1;i<N;i++) 数组下标是 0开始的。 不是1 。 1就不对了。 你改改看看

for(i=1;i<N;i++)
{
if(*p<*(p+i))
p=(p+i); //这应该是用个临时变量 你这样改变这节的指向 就不对哦
else if(*t>*(t+i))
t=(t+i);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-04-20
for(i=1;i<N;i++)
数组下标是
0开始的。
不是1

1就不对了。
你改改看看
for(i=1;i<N;i++)
{
if(*p<*(p+i))
p=(p+i);
//这应该是用个临时变量
你这样改变这节的指向
就不对哦
else
if(*t>*(t+i))
t=(t+i);
}
相似回答