12.删除最大最小数

删除最大最小数

题目描述:给你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%,认为代码逻辑并没有错,也不知道具体错哪,后来看题解,有同学也出现这个问题,指出当最大值和最小值相同的情况,就输出一个任意值。我认为最大值最小值相同的话,那么意味着整个数组都相同,则可认为不输出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值