c语言输出最大值最小值次大值,C语言问题,按照最小值,最大值,次小值,次大值等等依次排列...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

我在学C++,当练习了,看别人不带注释的代码是很蛋疼的事情你知道

#include

#define N 9 //N=9

void fun(int a[],int n) //函数fun的定义

{ int i,j,max,min,px,pn,t; // 用到的变量

for(i=0;i

//最后一次找出两个最后一个也确定了,这里是第7个,i=6最后一次

{max=min=a[i]; // 先都默认为第一个数

px=pn=i; // px、pn用来存放最后交换前的指针序号,初始都默认为剩余的第一个

for(j=i+1;j

if(max

{max=a[j];px=j;} //找出剩余最大值位置记在px,数值赋值给max

if(min>a[j])

{min=a[j];pn=j;} //找出剩余最小值位置记在pn,数值赋值给min

}

if(pn!=i) //判断最小值是否需要交换

{t=a[i];a[i]=min;a[pn]=t; //交换过程,其实可以用a[pn]=a[i];a[i]=min;

if(px==i)px=pn; //如果剩余的第一个为剩余中最大,交换后它的值已经到了交换前

//最小值的位置

}

if(px!=i+1) //判断最大值是否需要交换

{t=a[i+1];a[i+1]=max;a[px]=t;} //交换过程同上

}

}

main() //主函数

{ int b[N]={9,1,4,2,3,6,5,8,7},i;

printf("\nThe original data:\n");

for(i=0;i

printf("\n"); //先直接把固定要处理的数显示出来,毕竟是个例子

fun(b,N); //调用fun开始处理

printf("\nThe data after moving:\n");

for(i=0;i

printf("\n");

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值