| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1004 人关注过本帖
标题:c语言把a所指向数组中的数据最初排列为:1,2,3,4,5,6,7,8,9.按以上规则移动数 ...
只看楼主 加入收藏
Gloria_zhang
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2020-10-29
结帖率:71.43%
收藏
已结贴  问题点数:8 回复次数:1 
c语言把a所指向数组中的数据最初排列为:1,2,3,4,5,6,7,8,9.按以上规则移动数组中的数据后,数据的排列为:1,9,2,8,3,7,4,6,5
图片附件: 游客没有浏览图片的权限,请 登录注册

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

void fun(int a[],int n)
{
    int i,j,min,max,px,pn,t;
    
    for(i=0;i<n-1;i+=2)
    {
        min=max=a[i];
        px=pn=i;
        
        for(j=i+1;j<n;j++)
        {
            if(max<a[j]) {max=a[j]; px=j;}
             if(min>a[j]) {min=a[j]; pn=j;}
             
        }
        if(pn!=i)
          {t=a[i]; a[i]=min; a[pn]=t; if(px==i) px=pn;}
        
        if(px!=i+1)
          {t=a[i+1]; a[i+1]=max; a[px]=t;}
    }
}

int main()
{
    int a[9]={9,1,4,2,3,6,5,8,7},i;
    
    fun(a,9);
     
    for(i=0;i<9;i++)
        
        printf("%d ",a[i]);
    
    return 0;
}


把a所指向数组中的数据最初排列为:1,2,3,4,5,6,7,8,9.按以上规则移动数组中的数据后,数据的排列为:1,9,2,8,3,7,4,6,5
请问大家图片高光的地方的那句代码怎么理解 看不懂了。
搜索更多相关主题的帖子: 数据 排列 int min 数组 
2020-12-08 18:13
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:8 
这说的人话,……,很考验人呀!

当交换最小值元素时,可能更改了最大值元素的位置。
2020-12-08 18:37
快速回复:c语言把a所指向数组中的数据最初排列为:1,2,3,4,5,6,7,8,9.按以上规则 ...
数据加载中...
 
   



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

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