怎么用c语言编写出一个在数组中删除最大和最小的元素后显示其他的数

如题所述

#include "stdio.h"

void del(int d[],int i,int n)
{
for(;i<n-1;i++)
{
d[i]=d[i+1];
}
}
int main()
{
int d[]={2,4,0,9,1,3,6,7,8,5};
int max,min;
int i,j;
max=0;
min=0;
for(i=1;i<10;i++)
{
if(d[i]>d[max])
  max=i;
if(d[i]<d[min])
min=i;
}
/* 
//若不删除最大和最小直接输出其他数可使用下列代码 
for(j=0;j<10;j++)
{
if(j!=max && j!=min)
printf("%d ",d[j]);
}
printf("\n");
*/

//将最大最小两数删除,后面的数前移 
if(max<min)
{
del(d,max,10);
del(d,min-1,9);

}
else
{
del(d,min,10);
del(d,max-1,9);
}
for(j=0;j<8;j++)
{
printf("%d ",d[j]);
}
printf("\n");
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-06-22
#include <stdio.h>
#include <stdlib.h> 



inline int cmpArray(const void *a, const void *b)  
{  
return (*(int*)a) >= (*(int*)b) ? 1 :-1;
}

int main()
{
int iArray[12] = {332,544,23,755,887,543,466,334,89,121,44,367};
int i = 0;

printf("排序前:");
for ( i = 0; i < sizeof(iArray) /sizeof(int); i++)
{
printf("%d  ", iArray[i]);
}

 /* 按大小升序排序 */
    qsort(iArray, sizeof(iArray) /sizeof(int), sizeof(iArray[0]), cmpArray); /* 调用cmpArray函数排序 */
    
    printf("\n\n排序后:");
for ( i = 0; i < sizeof(iArray) /sizeof(int); i++)
{
printf("%d  ", iArray[i]);
}

for ( i = 0; i < sizeof(iArray) /sizeof(int); i++)
{ /* 删除首尾 */
iArray[i] = iArray[i+1];
if (i >= sizeof(iArray) /sizeof(int) - 2 )
iArray[i] = 0;
}
printf("\n\n删除后:");
for ( i = 0; i < sizeof(iArray) /sizeof(int); i++)
{
printf("%d  ", iArray[i]);
}

return 0;    
}

第2个回答  2016-06-22
这个简单,可以私信我

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网