江苏省住房建设厅网站适合小学生的最新新闻

系列文章《C语言经典100例》持续创作中,欢迎大家的关注和支持。
喜欢的同学记得点赞、转发、收藏哦~
后续C语言经典100例将会以pdf和代码的形式发放到公众号
关注:Python编程爱好者 即时查收文档及代码
1 题目
函数:fun()
功能:删除一维数组中所有相同的数,使之只剩一个。
描述:数组中的数据已经按照从小到大排列,函数返回删除后数组中元素的个数
举例:
一维数组中的数据是:2,2,2,2,3,3,4,4,5,6,6,6,7,7,8,9,9,9,10,10
删除后数组中的内容是:2,3,4,5,6,7,8,9,10

C语言100题集合-ex005
2 思路
初始化没有重复元素最右方的指针 a
当前元素与前一个元素进行比较,如果相同,则调到下一个,否则指针a+1
3 代码
#include <stdio.h>
#include <stdlib.h>
#define N 20/**
函数:fun()
功能:删除一维数组中所有相同的数,使之只剩一个。
描述:数组中的数据已经按照从小到大排列,函数返回删除后数组中元素的个数
举例:
一维数组中的数据是:2,2,2,2,3,3,4,4,5,6,6,6,7,7,8,9,9,9,10,10
删除后数组中的内容是:2,3,4,5,6,7,8,9,10
**/int fun(int *s) {int a = 1;for (int i = 1; i < N; ++i) {if (*(s+i) != *(s+i-1)) { // 当前元素与前一个元素进行比较,如果相同,则调到下一个,否则a+1*(s+a) = *(s+i);a++;}}return a;
}int main(int argc,char const *argv[]) { int s[N] = {2,2,2,2,3,3,4,4,5,6,6,6,7,7,8,9,9,9,10,10};int cnt = fun(s);printf("删除后的数组元素个数为:%dn",cnt);
}
示例结果:
$ gcc ex005.c -o demo
$ ./demo
删除后的数组元素个数为:9
--END--
喜欢本文的同学记得帮忙转发+点赞~
更多内容,欢迎大家关注我们,后续带来更多系列文章以及干货!
关注:Python编程爱好者 即时查收文档及代码
赞同、收藏、笔芯是对我最大的鼓励Thanks♪(・ω・)ノ