您的位置:首页 > 移动开发 > 微信开发

小程序:编写一个程序,将数组a中的相同的数据删除的只剩一个,然后输出;

2012-08-11 21:59 363 查看
无聊,写着玩的,敲敲键盘心情好多了~~

/*
**编写一个程序,将数组a中的相同的数据删除的只剩一个,然后输出;
*/
#include<stdio.h>
#include<stdlib.h>

#define ARRAY_LEN 50
int array[ARRAY_LEN];

void getArrayLen(int *len)
{
bool flag = true;

while(flag)
{
printf("\n请输入数组Array的长度(<50):");
scanf("%d",len);
//len=getchar();
//printf("len = %d",len);
if((*len<=0)||(*len>50))
{
printf("无效输入,请重新输入");
getchar();
}
else
{

flag=false;
}
}
}

void initArray(int *len)
{
printf("\n初始化数组,请输入数组Array的元素(元素用','隔开):");
for(int i=0; i<*len; i++)
scanf("%d,",&array[i]);
}

void listArray(int *len)
{
for(int i=0; i<*len; i++)
printf("%d  ",array[i]);

printf("\n");
}

void deleteItem(int pos, int *len)
{
for(int i=pos; i<*len;i++)
{
array[i]=array[i+1];
}
*len=*len-1;
//printf("\nB数组长度-1,%d:",*len);
}

void lookSameItem(int *len)
{
for(int i=0; i<*len;i++)
{
for(int j=i+1;j<*len;j++)
{
if(array[i]==array[j])
{
//printf("\nSame Item,i is %d, j is %d,array[i] is %d,array[j] is %d\n",i,j,array[i],array[j]);
deleteItem(j,len);
i--;//删除重复元素后,暂时先不比较下个元素,因为数组中的元素有改变,当前位置需重新检查
j--;

}
}
}
}

int main(void)
{
int len;

getArrayLen(&len);
printf("len = %d",len);
initArray(&len);

printf("\n初始化时数组有%d个元素:",len);
listArray(&len);

lookSameItem(&len);  //查找重复元素并删除

printf("\n删除重复元素后数组有%d个元素:",len);
listArray(&len);
return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐