高效编程->小弟我想写一个数组去重复的程序,在不新建数组,又不删除元素的情况上
高效编程->我想写一个数组去重复的程序,在不新建数组,又不删除元素的情况下
#include <stdio.h>
void main()
{
int a[30]={1,2,3,3,4,5,5,5,6,7,7,7,7,7,8,9,9,10,11,12,13,14,15,16,17,18,19,20,21,22};
int i,q=0;
int *last,*p;
last=&a[30];
for(p=&a;p<=last;p++){
while(*p >= *(p+q))q++;
*p= *(p+q);
}
last=*p;
for(i=0;i<=*last;i++)
printf("%d",a[i]);
printf("\n");
}
我想写一个数组去重复的程序(高效编程),在不新建数组,又不删除元素的情况下
但可惜的是,此程序出错了,希望同行们能给予一些指点,在此谢过各位好友了...谢谢
------解决方案--------------------
last=*p; //last是地址,*p是值。
for(i=0;i<=*last;i++) //这个可能会是死循环
printf("%d",a[i]);
看了会,发现程序得大动。
------解决方案--------------------
#include <stdio.h>
void main()
{
int a[30]={1,2,3,3,4,5,5,5,6,7,7,7,7,7,8,9,9,10,11,12,13,14,15,16,17,18,19,20,21,22};
int i,q=0;
int *last,*p;
last=&a[30];
for(p=&a;p<=last;p++){
while(*p >= *(p+q))q++;
*p= *(p+q);
}
last=*p;
for(i=0;i<=*last;i++)
printf("%d",a[i]);
printf("\n");
}
我想写一个数组去重复的程序(高效编程),在不新建数组,又不删除元素的情况下
但可惜的是,此程序出错了,希望同行们能给予一些指点,在此谢过各位好友了...谢谢
------解决方案--------------------
last=*p; //last是地址,*p是值。
for(i=0;i<=*last;i++) //这个可能会是死循环
printf("%d",a[i]);
看了会,发现程序得大动。
------解决方案--------------------
- C/C++ code
#include <stdio.h> void main() { int a[30]={1,2,3,3,4,5,5,5,6,7,7,7,7,7,8,9,9,10,11,12,13,14,15,16,17,18,19,20,21,22}; int i;//q=0; int *last,*p, *q; p = a; last=&a[30]; for(q=a;q<=last;q++){ if (*q > *p) { p ++; *p = *q; } } //last=p; for(q=a;q<=p;q++) printf("%d ",*q); printf("\n"); }