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

青旅半醒 2023-01-22 12:57 89阅读 0赞

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

我在学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”);

}

发表评论

表情:
评论列表 (有 0 条评论,89人围观)

还没有评论,来说两句吧...

相关阅读