/* Note:Your choice is C IDE */
#include "stdio.h"
#include "malloc.h"
//最好不要定义数组的大小,这样能动态分配数组大小
typedef struct
{
int *a;
int len;
}elem;
//
void dele1(elem *p, int i)//删除第i个数
{
int j;
//如果i小于1,或者i的大小大于数组的大小,或者数组大小为0,打印错误
if(i < 0 || i > p->len)//判断是否合法
printf("The list Don't have The locate %d!!!!!!!!!\n\n",i);
else//合法则删除
{
for(j = i; j < p->len; j++)
p->a[j]=p->a[j+1]; //把数组自i开始,把后面一个数覆盖前一个元素
p->len--; //数组长度减1
}
}
void deleof(elem *p)
{
int i,j;
int len = p->len;
int *k,count;
k = new int(len);
count = 0;
for( i = 0; i < len ; i++)
for (j = i+1; j < len; j++)
{
if (p->a[i] == p->a[j])
{
k[count++] = j;
}
}
for( i = 0; i < count;i++)
dele1(p, k[i]);
delete[]k;
}
void main()
{
int b[5]={3,3,2,5,1};
int i;
elem *pt;
pt=(elem*)malloc(sizeof(elem));
pt->len=5;//设置数组长度
pt->a = b; //设置数组元素
for(i=0; i
{
printf("%4d ",pt->a[i]);
}
printf("\n");
deleof(pt);
//
for(i = 0; i < pt->len; i++)
{
printf("%4d ",pt->a[i]);
}
printf("\n");
}
自己不好好做,就知道问人(*^%@%^#^(()*%