删除最大最小数
题目描述:给你N个整数,要求删除最大和最小的数之后按原顺序输出。
输入描述:第一行输入一个整数N,N<=100。第二个输入N个整数。
输出描述:按题意输出。
C语言代码
#include <stdio.h>
int main()
{
int n, num[100];
scanf("%d", &n);
int ma, mi, posa = 0, posi = 0;
for (int i = 0; i < n; i++)
scanf("%d", &num[i]);
ma = num[0]; mi = num[0];
for (int i = 0; i < n; i++)
{
if (num[i] > ma)
{
ma = num[i]; posa = i;
}
if (num[i] < mi)
{
mi = num[i]; posi = i;
}
}
if(ma==mi) printf("%d",ma);
else
{
for (int i = 0; i < n; i++)
{
if (i == posa || i == posi) continue;
else printf("%d ",num[i]);
}
}
return 0;
}
题目原来测试用例通过为75%,认为代码逻辑并没有错,也不知道具体错哪,后来看题解,有同学也出现这个问题,指出当最大值和最小值相同的情况,就输出一个任意值。我认为最大值最小值相同的话,那么意味着整个数组都相同,则可认为不输出。