主题:[讨论]问题求助
谭浩强课后习题10.3
给出一个数组,输入值,并判断出最大最小值,然后最小值跟数组中第一位交换,最大值跟数组中最后一位交换,最后输出新数组
程序一直调试错误,望达人指出错误所在,本人在此表示万分感激!
#include<stdio.h>
void input(int * p,int n)
{
int i;
printf("Input numbers : ");
for(i=0;i<n;i++,p++)
scanf("%d,",p);
}
void swap(int * arry,int n)
{
int * p,* arry_end,* max,* min,t;
arry_end=arry+n;
max=min=arry;
for(p=arry+1;p<arry_end;p++)
{
if(* p>* max)max=p;
else if(* p<* min)min=p;
}
t=* arry;* arry=* min;* min=t;
t=* arry_end;* arry_end=* max;* max=t;
return ;
}
void output(int * q,int m)
{
int * q_end;
q_end=q+m;
for(;q<q_end;q++)
printf("%d,",* q);
printf("\n");
}
main()
{
int number[3];
input(number,3);
swap(number,3);
output(number,3);
}
给出一个数组,输入值,并判断出最大最小值,然后最小值跟数组中第一位交换,最大值跟数组中最后一位交换,最后输出新数组
程序一直调试错误,望达人指出错误所在,本人在此表示万分感激!
#include<stdio.h>
void input(int * p,int n)
{
int i;
printf("Input numbers : ");
for(i=0;i<n;i++,p++)
scanf("%d,",p);
}
void swap(int * arry,int n)
{
int * p,* arry_end,* max,* min,t;
arry_end=arry+n;
max=min=arry;
for(p=arry+1;p<arry_end;p++)
{
if(* p>* max)max=p;
else if(* p<* min)min=p;
}
t=* arry;* arry=* min;* min=t;
t=* arry_end;* arry_end=* max;* max=t;
return ;
}
void output(int * q,int m)
{
int * q_end;
q_end=q+m;
for(;q<q_end;q++)
printf("%d,",* q);
printf("\n");
}
main()
{
int number[3];
input(number,3);
swap(number,3);
output(number,3);
}