求助!这个程序哪里错了,为什么什么都不输出

#include<stdio.h>
int i,str[20],N,*p;
int main()
{
	void print(int *pl,int n);
	void max_min_value(int *number,int n);
	p=str;
	printf("please input N:");
	scanf("%d",&N);
	printf("please input a string:");
	for(i=0;i<N;i++)
	{
		scanf("%d",str[i]);
	}
	p=str;
	max_min_value(p,N);
	print(p,N);
	printf("\n");
	return 0;
}
void max_min_value(int *number,int n)
{
	int temp;
	for(i=0;i<n;i++)
	{
		if(*number>*(number+1))
		{
			temp=*number;
			*number=*(number+1);
			*(number+1)=temp;
		}
		number++;
	}
	for(i=n-1;i>=0;i--)
	{
		if(*number<*(number-1))
		{
			temp=*number;
			*number=*(number-1);
			*(number-1)=temp;
		}
		number--;
	}
}
void print(int *pl,int n)
{
	int i;
	printf("output:\n");
	for(i=0;i<n;i++,pl++)
	{
		printf("%d ",*pl);
	}
}

 

 

在你的循环中间用 printf() 打印中间变量的值, 你就知道为何循环不出来了。