解题思路:在删除相同元素的操作中,使用数据结构知识会比较简便。但是对于C语言小白来说还不太会指针等后面的知识和操作。于是我们采用笨方法纯语句操作:逐个比较数组元素,相同者赋0,最后排序之后把前面的0项全部截断输出即可!
注意事项:
参考代码:
# define _CRT_SECURE_NO_WARNINGS 1
# include<stdio.h>
# include<math.h>
int main() {
int m;
scanf("%d", &m);
int a[100];
for (int i = 0;i < m;i++)
{
scanf("%d", &a[i]);
}
for (int i = 0;i < m;i++)
{
for (int j = i + 1;j < m;j++)
{
if (a[i] == a[j])
{
a[j] = 0;//删除的元素标记为0,代表已删除
}
}
}
int len = 0;
for (int k = 0;k < m;k++)
{
if (a[k] == 0) len++;//记录为0的元素个数,待会儿输出的时候剔除
}
for (int l = 0;l < m - 1;l++)
{
for (int n = 0;n < m - l - 1;n++)
{
if (a[n] > a[n + 1])
{
int temp = a[n + 1];
a[n + 1] = a[n];
a[n] = temp;
}
}
}//冒泡排序,经过排序所有的0都会跑到前面
printf("%d\n", m - len);
for (int i = len;i < m ;i++) //截断前面所有的0,从非0项开始输出
{
printf("%d ", a[i]);
}
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复