标题:出现小问题,可以得出结果,却有点问题,求大神解答。。。。。
只看楼主
罗明豪
Rank: 2
等 级:论坛游民
帖 子:33
专家分:26
注 册:2014-5-25
结帖率:83.33%
已结贴  问题点数:20 回复次数:3 
出现小问题,可以得出结果,却有点问题,求大神解答。。。。。
#include<stdio.h>
int pointer(int *p,int n)
{
    int i,j,t;
    for(i=0;i<n-1;i++,p++)
    {
        for(j=0;j<n-i-1;j++,p++)
        {
            if(*p>*(p+1))
            {
                t=*p;
                *p=*(p+1);
                *(p+1)=t;
            }
        }
    }   
}
void main()
{
    int A[5]={0,1,56,65,78},*p;
    p=A;
    printf("please into a number:");
    scanf("%d",p);
    pointer(p,5);
    for(p=A;p<A+5;p++)
        printf("%d\t",*p);
    printf("\n");
}
搜索更多相关主题的帖子: include please number 
2014-06-09 23:51
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
得分:0 
这个代码的目的是干啥?就为了改变数组的内容?函数里面用了双重循环,肯定会超出数组的范围吧,那么访问就越界了。

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2014-06-10 05:46
xsw07122269
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:34
专家分:183
注 册:2014-6-2
得分:20 
你应该是要用冒泡发从小到大排序吧?
int pointer(int *p,int n)
{
    int i,j,t;
    for(i=0;i<n-1;i++)
    {
        for(j=i;j<n-i-1;j++)
        {
            if(*(p+j)>*(p+j+1))
            {
                t=*(p+j);
                *(p+j)=*(p+j+1);
                *(p+j+1)=t;
            }
        }
    }   
}
2014-06-10 06:04
罗明豪
Rank: 2
等 级:论坛游民
帖 子:33
专家分:26
注 册:2014-5-25
得分:0 
回复 2 楼 pauljames
如何不超出?
2014-06-10 13:19



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




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

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