作者:乔山办公网日期:
返回目录:excel表格制作
#define N 5
main( )
{
int a[N],i,temp;
printf("Enter array a:\n");
for (i=0;i<N;i++) /*读入a[0]---a[4]的值zhidao*/
scanf("%d",&a[i]);
printf("array a:\n");
for (i=0;i<N;i++) /*输出a[0]---a[4]的值*/
printf("%5d",a[i]);
for (i=0;i<N/2;i++)/*对数组前一半版元素,与后一半相应位置上的元素调换*/
{
temp=a[i];
a[i]=a[N-i-1];
a[N-i-1]=temp;
}
printf("\n Now,array a:\n");
for (i=0;i<N;i++) /*输出逆序存放后的值*/
printf("%5d",a[i]);
printf("\n");
}
运行权情况下:
Enter array a:
8 6 5 4 1↙
array a:
8 6 5 4 1
Now,array a:
1 4 5 6 8
假设你原来的数组是arr,值zd是:={1,"",9,"",8,5,7},如下图
新定义一个名称Sort_arr
=SMALL(arr,ROW(INDIRECT("1:"&COUNT(arr))))
这个结果就是新的内存数组,选择A1:A5,输入=Sort_arr,按Ctrl+Shift+Enter,结果如下图
知识扩展:
1、如果你需专要的排序结果不必是内存数组,可以直接在单元格B1中输属入公式,并下拉复制
=IFERROR(SMALL(arr,ROW()),"")
2、如果需要的是降序排列的数组,把公式中的SMALL改为LARGE就可以了。
设数据在A列,在B1输入1,在B2输入2,选中B1和B2向下拉到最后一个数据行成自然数序,再选中A、B列,以B列按降序排列,最后删除B列可达到你的要求。
肯定有。上传带行列号的有数据示例的表格截图,清楚说明已知条件,达成什么样的结果,才能有针对性地给你准确的答案。