标题:[求助]简单的指针数组,交换的时候出现错误
取消只看楼主
gaga
Rank: 1
等 级:新手上路
威 望:2
帖 子:307
专家分:0
注 册:2006-4-5
 问题点数:0 回复次数:3 
[求助]简单的指针数组,交换的时候出现错误

下面是输入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;

}

搜索更多相关主题的帖子: 指针 int temp void 
2006-05-03 10:19
gaga
Rank: 1
等 级:新手上路
威 望:2
帖 子:307
专家分:0
注 册:2006-4-5
得分:0 
多谢谢各位的帮忙,呵呵
问题已经解决
但我想*max=*min=*p跟max=min=p
我感觉这两个表示的是一个意思啊
但为什么第一种写法就不对了呢

明天的明天还有明天。 可是今天却只有一个。 public Copy from 无缘今生
2006-05-03 10:50
gaga
Rank: 1
等 级:新手上路
威 望:2
帖 子:307
专家分:0
注 册:2006-4-5
得分:0 

真是听君一话,胜读十年书啊
多谢谢了啊
交个朋友吧
我的QQ281813553


明天的明天还有明天。 可是今天却只有一个。 public Copy from 无缘今生
2006-05-03 10:57
gaga
Rank: 1
等 级:新手上路
威 望:2
帖 子:307
专家分:0
注 册:2006-4-5
得分:0 
我没有加到你
我先去吃饭了啊

明天的明天还有明天。 可是今天却只有一个。 public Copy from 无缘今生
2006-05-03 11:07



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-61664-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.001812 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved