下面是输入10个整数,把最小的与第一个换,最大的与最后一个换;要求是无论实参还是形参,都用指针实现,不用数组
大家最好 是能帮我找下我下面写的这个的错误,因为找不到这个错误让我心里很不舒服,就算是看到其它写的对的程序,可是这个错误找不出来,以后还会犯同样的错误的
我在这里谢谢了啊
#include"stdio.h"
void swap(int *p1,int *p2)
{
int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
void sort(int *q,int n)
{
int *max,*min;
*min=*max=*q;
for(q=q+1;q<q+n;q++)
{
if(*q>*max)
max=q;
else min=q;
}
swap(q,max);//此时的q指向的是数组的最后一位数
if(min==q)
swap(q-n+1,max);
else swap(q-n+1,min);
}
main()
{
int a[10],i=0;
printf("Input 10 numbers:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
p=a;
sort(p,10);
for(i=0;i<10;i++)
printf("\n%3d",a[i]);
return 0;
}
----------------解决方案--------------------------------------------------------
老大,这好象是潭书题解上的吧
----------------解决方案--------------------------------------------------------
p=a;
你的p在什么地方定义的
----------------解决方案--------------------------------------------------------
int *max,*min;
*min=*max=*q;
swap(q,max);//此时的q指向的是数组的最后一位数
void swap(int *p1,int *p2)
思路有问题,自己在想想
----------------解决方案--------------------------------------------------------
顶
----------------解决方案--------------------------------------------------------
你不用刻意的家'*'这个东西,数组名就是指针,而不是有'*'就是指针,没有就不是指针,该是指针的它还是指针,改变不了,你对指针理解有误
----------------解决方案--------------------------------------------------------
for(q=q+1;q<q+n;q++)
这能停止循环吗
----------------解决方案--------------------------------------------------------
void sort(int *q,int n)
这个好像是无返回值的吧,
----------------解决方案--------------------------------------------------------
#include"stdio.h"
void swap(int *p1,int *p2)
{
int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
void sort(int *q,int n)
{
int *max,*min,*temp;
int counter=0;
temp=min=max=q;
for(q=q+1;q<temp+n-1;q++)
{
counter++;
if(*q>*max)
max=q;
if(*q<*min)
min=q;
}
swap(q,max);
if(min==q)
swap(q-n+1,max);
else swap(q-n+1,min);
}
main()
{
int a[10],i=0;
int *p;
printf("Input 10 numbers:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
p=a;
sort(p,10);
for(i=0;i<10;i++)
printf("\n%3d",a[i]);
return 0;
}
你自己比较下就知道错在哪了。
----------------解决方案--------------------------------------------------------
楼上的好人啊,程序都写了
----------------解决方案--------------------------------------------------------