c语言这道题怎么做
3、定义一个大小为10的整型一维数组,初始化所有数组元素,编程对中间的8个元素进行降序排序,即第一个和最后一个元素不参与排序。程序运行效果如下图所示:提示:(1)本题变量...
3、定义一个大小为10的整型一维数组,初始化所有数组元素,编程对中间的8个元素进行降序排序,即第一个和最后一个元素不参与排序。程序运行效果如下图所示:
提示:
(1)本题变量定义可参考如下
int a[10]={ 3,6,1,7,8,4,9,5,10,2}, i, j, k, t; 展开
提示:
(1)本题变量定义可参考如下
int a[10]={ 3,6,1,7,8,4,9,5,10,2}, i, j, k, t; 展开
3个回答
展开全部
我写这个,修改常量可以实现任意长度数组间任意长度降序排列。
#include <stdio.h>
#define maxlen 10//数组总长度
#define midlen 8//中间需要排序的长度,修改时确保midlen小于等于maxlen 并且 maxlen-midlen为偶数或0
int main()
{
int a[maxlen]={3,6,1,7,8,4,9,5,10,2},i,*pb=&a[(maxlen-midlen)/2],*pe=pb+(midlen-1),*ps=NULL;
pb--;
while(++pb<=pe)//冒泡排序
{
ps=pb+1;
while(++ps<=pe)
if(*ps>*pb)
*ps^=*pb,*pb^=*ps,*ps^=*pb;
}
printf("排序前:3,6,1,7,8,4,9,5,10,2\n中间8位排序后:");
for(i=0;i<maxlen;i++)
printf("%d ",a[i]);
return 0;
}
展开全部
#include<stdio.h>
void main() { int a[10]={ 3,6,1,7,8,4,9,5,10,2}, i, j, k;
for ( i=1;i<8;i++ )
for ( j=i+1;j<9;j++ )
if ( a[i]<a[j] ) { k=a[i];a[i]=a[j];a[j]=k; }
for ( i=0;i<10;i++ ) printf("%d ",a[i]); printf("\n");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询