解题思路:
这题题目要求给出n个数,把全部数输入,进行“去重”并“排序”的操作,最后输出操作完后的数列。
那么这题我用了set轻松水过......
STL中的set(也称集合),在输入时会自动排序并会去掉重复的数或字符等(set最基本的最常见的作用就是这样了,我在这里也就不多讲set集合的知识了,如有兴趣的可以去看我的文章中的(STL之set集合)),这性质正好符合题目要求,所以我推荐用这种做法。
下面请欣赏我的“小作”!
感谢大家的支持!!
注意事项:
这题可以直接用int。
建议用标准输入输出。
在定义set时用的是整型。
参考代码:
#include
using namespace std;
int n,a;
set
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a);
v.insert(a);//把刚输入的数存进v里。
//这里的v是set类型,把数存进v里就可以直接“去重”并“排序”了!
}
printf("%d\n",v.size());//输出v的长度,也就是数列中数的个数了。
set
for(it=v.begin();it!=v.end();++it)//输出操作完后的数列。
printf("%d ",*it);
printf("\n");
return 0;//完美结束!!!
}
0.0分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复