set函数去重c语言 c++ set 删除

刚学C语言,想问下为什么在set这个函数中,在第一层循环中插入改变i的值得语句都会使代码运行时卡住?

因为在循环中,外层循环有i++的操作,而内层循环的if判断中有i--操作,当循环到某个数值时,符合内层循环的条件,那么就会先减1,到外层循环后再加1,这个结果会导致i值不变,i不变就会反复执行这个循环,就变成死循环了。当然就被卡住了。

十多年建站经验, 成都做网站、网站建设客户的见证与正确选择。创新互联建站提供完善的营销型网页建站明细报价表。后期开发更加便捷高效,我们致力于追求更美、更快、更规范。

这段代码会由某个数值触发死循环

因为不清楚set函数需要做哪些操作,因此没有办法直接修改你的代码。需要根据set函数的要求进行修改。

c语言如何对数字进行排序和去重

#include iostream

#include stdio.h

#include set

using namespace std;

int main()

{

int n,a,i;

setintm;

while(scanf("%d",n)!=EOF)

{

for(i=0;in;i++)

{

scanf("%d",a);

m.insert(a);

}

setint::iterator it;

printf("%d\n",m.size());

for(it=m.begin();it!=m.end();it++)

{

if(it==m.begin())

printf("%d",*it);

else

printf(" %d",*it);

}

printf("\n");

m.clear();

}

return 0;

}

c语言中一个一维数组怎样去重?

可以定义两个数组,将原来数组的不重复的数放到新数组中就可以了.(如果需要也可以释放原来数组的内存)#include stdio.h main() { int a[5]={1,1,2,1,2}; int i,j,k=0, b[5]={0}; for(i=0;i=4;i++) for(j=0;j=4;j++) if(a[i]!=b[j]) {b[k]=a[i];k++;} printf("去重后的数组为:"); for(i=0;i=k-1;i++) printf("a[i]=%d",a[i]); }


文章名称:set函数去重c语言 c++ set 删除
标题URL:http://azwzsj.com/article/hepejd.html