题解 | #序列中删除指定数字#

序列中删除指定数字

https://www.nowcoder.com/practice/7bbcdd2177a445a9b66da79512b32dd7

#include <stdio.h>

int main()
{
	int n = 0;
	int del = 0;
	int arr[100] = { 0 };
	int sub[100] = { 0 };//记录和要删去的数字一样的元素的下标
	scanf("%d", &n);//数组元素的个数
	for (int i = 0; i < n; i++)
	{
		scanf("%d", &arr[i]);//给数组赋值
	}
	scanf("%d", &del);//输入要删掉的元素
	
	int flag = 0;//如果flag在del遍历完arr后依旧是0,那么arr里面没有和del一样的元素

	for (int i = 0; i < n; i++)
	{

		if (del == arr[i])
		{
			sub[flag] = i;//记录这个元素的下标
			flag++;//找到一个,加一
		}
	}

	if (flag != 0)
	{
		int j = 0;
		for (int i = 0; i < n; i++)
		{
			
			if (i != sub[j])//输出不是要删掉的元素,如遇到要删掉的元素就跳过去
			{
				printf("%d ", arr[i]);
			}
			else
			{
				j++;
			}
		}
	}
	else
	{
		for (int i = 0; i < n; i++)
		{
			printf("%d ", arr[i]);
		}
	}
	return 0;
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务