该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我在学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");
}