欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > 每天一道C语言精选编程题之删除指定的数

每天一道C语言精选编程题之删除指定的数

2025/12/7 19:25:04 来源:https://blog.csdn.net/huc_error/article/details/143493088  浏览:    关键词:每天一道C语言精选编程题之删除指定的数

题目描述

        先输⼊10个整数存放在数组中,再输⼊⼀个整数n,删除数组中所有等于n的数字,数组中剩余的数组保证数组的最前⾯,打印剩余的数字。

解法思路

使⽤两个指针 i j

1. i 从前往后扫描整个数组, j 记录当前剩余的数字应该放在数组的哪个位置。

2. 如果当前数字不等于给定整数,就将该数字放在数组中的位置 j ,然后将 j ⾃增 1。

3. 这样, j 指向的位置就是数组中下⼀个剩余数字应该放置的位置。

4. 最后, j 的值为删除后的数组⻓度,将数组中前 j 个数输出即可。

解法代码

#include <stdio.h>int main()
{int arr[10] = { 0 };int del = 0;int i = 0;//输⼊for (i = 0; i < 10; i++){scanf("%d", &arr[i]);}scanf("%d", &del);//删除int j = 0;for (i = 0; i < 10; i++){//若当前数与给定值不相同,不需要删除,将其填⼊第j个位置,将j后移if (arr[i] != del)arr[j++] = arr[i];}//打印for (i = 0; i < j; i++){printf("%d ", arr[i]);}return 0;
}

运行结果

输入:

1 2 3 4 5 4 5 6 1 6
4

输出:
1 2 3 5 5 6 1 6

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词