将数组中指定元素置于最后
源程序代码如下:
/*
2017年6月12日15:13:39
功能:将数组中指定元素置于最后
*/
#include"stdio.h"
#define M 15
int main()
{
int temp = 0;
int a[M] = {0,1,9,9,4,0,5,0,8,0,8,9,9,5,6};
int i,j;
for(i = 1, j = M - 1; i < M ; ) //最后元素的下标值应该为:M-1
{
if(a[i] == 5 && a[j] == 5)
{
j--;
}
else if(a[i] != 5 && a[j] == 5)
{
i++;
j--;
}
else if(a[i] != 5 && a[j] != 5)
{
i++;
}
else if(a[i] == 5 && a[j] != 5)
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
i++;
j--;
}
if(i >= j)
break;
}
printf("The new array is : ");
printf("\n");
for(i = 1; i < M; i++) //注意:最后一个元素a[M -1],取不到a[M]的值
printf("%4d",a[i]);
printf("\n");
return 0;
}
/*
总结:
在VC++6.0中的显示结果是:
——————————————————————
The new array is :
1 9 9 4 0 6 0 8 0 8 9 9 5 5
——————————————————————
*/