| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 456 人关注过本帖
标题:用指针方法对10个整数按由小到大顺序排序
只看楼主 加入收藏
美美学c
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2023-9-9
结帖率:87.5%
收藏
已结贴  问题点数:20 回复次数:3 
用指针方法对10个整数按由小到大顺序排序
图片附件: 游客没有浏览图片的权限,请 登录注册

#include<stdio.h>
int main()
{void v(int *x,int n);
    int a[10];
    int i,*p;
    p=a;
    for(i=0;i<10;i++)
    scanf("%d",p+i);
    v(p,10);
    p=a;
    for(i=0;i<10;i++)
    {printf("   %d  ",*p);
    p++;}
}
void v(int *x,int n)
{int i,j,t;
    for(i=0;i<n;i++)
    {for(j=0;j<n;j++)
        if(*(x+j)<*(x+j+1))
            {t=*(x+j);
            *(x+j)=*(x+j+1);
            *(x+j+1)=t;}
    }
}
从代码结果分析应该是指针的第一个没有获得地址 但是不知道哪里有问题 请大佬帮忙改下
搜索更多相关主题的帖子: int 指针 for 顺序 i++ 
2023-10-28 20:26
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1685
专家分:4252
注 册:2007-12-27
收藏
得分:10 
冒泡的j务必和i有关系。
类似
for(i=0;i<n-1;i++)
for(j=i;j<n-1;j++)

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2023-10-29 09:27
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:10 
首先代码要排版,不能团成一坨屎

程序代码:
#include <stdio.h>

void v( int x[], size_t n );

int main( void )
{
    int a[10];

    const size_t n = sizeof(a)/sizeof(*a);
    for( size_t i=0; i!=n; ++i )
        scanf( "%d", &a[i] );

    v( a, n );

    for( size_t i=0; i!=n; ++i )
        printf( "   %d  ", a[i] );
}

void v( int x[], size_t n )
{
    for( size_t i=0; i!=n; ++i )
    {
        for( size_t j=0; j!=n; ++j ) // 虽然写成 j<n 不算错,但明明只需要 j!=n-1-i
        {
            if( x[j] < x[j+1] ) // 当 j == n-1 时,x[j+1] 已经溢出了,这就是错误所在
            {
                int t = x[j];
                x[j] = x[j+1];
                x[j+1] = t;
            }
        }
    }
}

2023-10-29 19:27
hxwj
Rank: 2
等 级:论坛游民
帖 子:75
专家分:34
注 册:2016-12-8
收藏
得分:0 
回复 楼主 美美学c
void v(int *x,int n)
{int i,j,t;
    for(i=0;i<n-1;i++)
    {for(j=0;j<n-1-i;j++)
        if(*(x+j)<*(x+j+1))
            {t=*(x+j);
            *(x+j)=*(x+j+1);
            *(x+j+1)=t;}
    }
}

这样最好!
2023-12-27 21:00
快速回复:用指针方法对10个整数按由小到大顺序排序
数据加载中...
 
   



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

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