C语言指针编程求助

来源:百度知道 编辑:UC知道 时间:2024/05/12 06:16:53
设有N名考生参加英语考试,每个考生的数据包括考生号,姓名,性别和成绩,编一程序,要求用指针方法找出女性考生中成绩最差的考生,并输出其信息.大侠帮忙哈 o(∩_∩)o...

#include <stdio.h>
#include <conio.h>
int a[10],i,n;
void prin(int *c,int n)
{c=a;
printf("\npaixu:");
for(i=0;i<n;i++,c++)
printf("%d ",*c);
}
main()
{
clrscr();
printf("\n**begin**\nplease enter 10 numbers:\n");
inputn();
pro(a[10],10);
prin(a,10);
}
int inputn()
{
int *p;
p=a;
for(i=0;i<10;i++)
scanf("%d",p++);
}
int pro(int *p, int n)
{
int *max,*min,l,h,k;
p=a;
max=p;
min=p;
for(i=1;i<n;i++)
if(p>*max) max=&p;
else if(p<*min) min=&p;
l=*max;
*max=p[9];
p[9]=l;
h=*min;
*min=p[0];
p[0]=h;
}

以上是我编的正确的代码,可是当我将int pro(int *p, int n)中的 if(p>*max) max=&p; 改为:if(p>*max) *max=p; 时就会出错。max=&p是地址,而*max=p指针指向,不还是同一个单元吗?为何出错?