数组去重的代码写出来(编写程序,读入一个整数数组,删除值相同的多余元素,输出新的数组)

本文目录
- 编写程序,读入一个整数数组,删除值相同的多余元素,输出新的数组
- C++ 数组去重
- C语言问题,删除整型数组内重复的项并输出,如能解惑,不胜感激
- 如何去掉一个数组的重复元素:数组去重
- C语言问题,数组去重问题,
- PHP代码实现:1)删除整个数组2)删除数组中指定的元素3)删除重复的元素
- 如何对数组中的重复元素进行去除
- C语言数组去除重复内容
编写程序,读入一个整数数组,删除值相同的多余元素,输出新的数组
代码如下(java):
importjava.util.Arrays;
publicclassTest2{
publicstaticvoidmain(Stringargs){
inta={1,1,4,4,3,3,5,3,8,0,5,1};
System.out.println("输入的数组为:"+Arrays.toString(a));
a=Arrays.stream(a).distinct().toArray();
System.out.println("删除相同后的数组为:"+Arrays.toString(a));
}
}
代码运行结果:
***隐藏网址***
扩展资料
删除数组中重复的元素,在java中特别简单,特别是在java8引入streamapi之后对数组的操作可以转换成stream进行操作,stream提供去重的方法,能对数组进行去重,然后再把stream转换回数组,就可以得到删除重复数字的数组了。
C++ 数组去重
这题应该用二叉树或者散列表做
#include 《iostream》
#include 《set》
#include 《list》
using namespace std;
int main()
{
int a={2, 5, 3, 12, 3, 16, 5, 9, 5};
int a_length=sizeof(a)/sizeof(int);
set《int》 s;
pair《 set《int》::iterator, bool 》 p;
list《int》 l;
for(int i=0;i《a_length;i++){
p=s.insert(a);
if(p.second) l.push_back(a);
}
cout《《"无输入顺序:";
for(set《int》::iterator iter=s.begin();iter!=s.end(); iter++)
cout《《*iter《《" ";
cout《《"\n记录输入顺序:";
for(list《int》::iterator iter=l.begin();iter!=l.end(); iter++)
cout《《*iter《《" ";
return 0;
}
无输入顺序:2 3 5 9 12 16
记录输入顺序:2 5 3 12 16 9
Process returned 0 (0x0) execution time : 0.016 s
Press any key to continue.
C语言问题,删除整型数组内重复的项并输出,如能解惑,不胜感激
#include 《stdio.h》
#include 《stdlib.h》
#include 《time.h》
int main(int argc, char *argv)
{
srand((unsigned)time(0));
int s={0};
int i,j;
for(i=0;i《30;i++)
{
s=rand()%10;
}
printf("\n源数组:");
for(i=0;i《30;i++)
{
printf("%d ",s);
}
j=0;
while(j《30)
{
if(s==-32767)
{
j++;
continue;
}
for(i=j+1;i《30;i++)
{
if(s)
{
s=-32767;
}
}
j++;
}
printf("\n目标数组:");
for(i=0;i《30;i++)
{
if(s!=-32767)
printf("%d ",s);
}
return 0;
}
如何去掉一个数组的重复元素:数组去重
可以使用双重循环,逐一对比元素,如有重复,则删除的方法去重。
其思路为
1、依次遍历循环中的每一个元素。
2、对于任意一个元素,依次与之前的元素进行对比,如果有重复则删除。
3、删除操作可以采用将后续元素逐个前移,达到覆盖当前元素的效果。
在此基础上可以进行一点优化,即,不需要每次删除元素均前移所有元素,而是把需要保留的元素放到"应该"放的位置即可,这样可以提高效率。
以整型数组为例,参考代码如下:
1234567891011121314
int remove_repeat(int *a, int l)//对起始地址为a,长度为l的数组进行去重,新的长度以返回值形式返回。{ int i,j, r=0; //i,j为循环下标,r为去重后元素总数,初始值为0 for(i = 0; i 《 l; i ++) { for(j = 0; j 《 r; j ++)//检查是否重复 if(a; //将当前元素放置与去重后数组的尾部,并增加去重后的总数。 } return r; //返回新的长度。}
C语言问题,数组去重问题,
int main ()
{
int array;
int count = 0;
int result = 0;
int index = 0;
int val = 0;
int i = 0;
printf( "请输入数组长度及其数组数据:\n" );
while( 1 )
{
result = scanf ("%d" , &val);
if( count == 0 )
{
memset(array, 0, sizeof(int)*100 );
count = val;
if(count 》 100 || count 《 2 )
{
printf( "输入的数组长度必须大于2并且小于100!\n" );
fflush(stdin);
count = 0;
continue;
}
}
else
{
if( val 》= 100 || val 《 0 )
{
printf( "输入的数组数据必须为小于100的正整数!\n" );
fflush(stdin);
count = 0;
continue;
}
array = 1;
index++;
if( result == 1)
{
if( index == count )
{
break;
}
}
}
}
printf( "排序后的数组长度及其数组数据:\n" );
count = 0;
for( i = 0x00 ; i 《 100 ; i ++ )
{
if(array == 1 )
count++;
}
printf( "%d", count);
for( i = 0x00 ; i 《 100 ; i ++ )
{
if(array == 1 )
printf( " %d", i);
}
printf( "\n");
system(" PAUSE");
}
PHP代码实现:1)删除整个数组2)删除数组中指定的元素3)删除重复的元素
$arr = array(1,2,4,2,0,9,8,5);//定义一个数组。
$arr1 = $arr; //定义另一个数组和上一个数组一样。
//循环第一个数组让后循环第二个数组 用第一个数组的每个值和第二个数组比较如果相同就删除,最后输出第二个数组就行了。
for($i = 0;$i《count($arr);$i++){
for($j=$i+1;$j《count($arr);$j++){
if($arr)
unset($arr1);
}
}
echo’《pre》’;
print_r($arr1);
第二 如果允许使用array_uniqe()函数的话,直接array_uniqe(直接写数组名就ok)。
在PHP中可以使用内置函数array_unique()来直接删除重复元素,也可以使用array_flip()函数来间接删除重复元素。
1.array_unique()函数
array_unique()函数可以移除数组中的重复的值,并返回结果数组;当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除。
代码示例:
《?php$result1 = array("a" =》 "green", "red", "b" =》 "green", "blue",
"red");var_dump($result1);$result2 = array_unique($result1);var_dump($result2);?》
2.array_flip()函数
array_flip()是反转数组键和值的函数,它有个特性就是如果数组中有二个值是一样的,那么反转后会保留最后一个键和值,利用这个特性我们用他来间接的实现数组的去重。
代码示例:
《?phpheader("content-type:text/html;
charset=utf-8");$a = array(1, 5, 2, 5, 1, 3, 2, 4, 5);// 输出原始数组echo "原始数组
:";var_dump($a);// 。
通过使用翻转键和值移除重复值$a = array_flip($a);
// 通过再次翻转键和值来恢复数组元素$a = array_flip($a);// 重新排序数组键$a = array_values($a);// 输出更新后的数组echo "更新数组 :";var_dump($a);?》
如何对数组中的重复元素进行去除
如果是使用STL的话,可以参考如下代码:
#include 《vector》#include 《iostream》#include 《algorithm》using namespace std;int main(){vector《int》 buf(5, 2);for (int i = 0; i 《 5; i++)buf.push_back(rand());// 上面一段是为了生成测试数据// vector《int》::iterator 这个是定义了个迭代器vector《int》::iterator it;// 输出去重之前的元素for (it = buf.begin(); it != buf.end(); it++) cout 《《 *it 《《 " ";cout 《《 endl;// 先对数据进行排序(必须的)sort(buf.begin(), buf.end());// unique()函数就是去重用的// 去重原理:找到重复的数据后移动到最后,然后返回第一个重复的元素的地址it = unique(buf.begin(), buf.end());// 删掉重复的元素buf.erase(it, buf.end());// 输出去重后的元素for (it = buf.begin(); it != buf.end(); it++) cout 《《 *it 《《 " ";cout 《《 endl;}// 以上就是利用STL的方法
如果不是使用STL的话,只是对某个数组进行去重的话,可以参考这个过程:
1、进行排序(依然可以调用sort())
2、对比相邻两个元素,相同就删掉一个
C语言数组去除重复内容
#include 《stdio.h》 // 升序数组srcvoid sort(int *src, int len){ int tem; for (int i = 0; i 《 len; i++) { for (int j = 0; j 《 len - i - 1; j++) if (src == d) printf("%d\n", d); return 0;}

本文相关文章:
8进制输出整数(用C语言编写一个程序,读入用户输入的整数,按八进制显示出来)
2026年9月3日 04:50
用java做一个简单的售票系统(你好,请问一下java模拟5个窗口售票系统你是如何编写的,能教我一下吗)
2026年8月16日 18:30
vb语言变量交换代码(用vb语言编写一个有两个整数X和Y的名为swap的SUB过程,功能是交换两个变量的)
2026年7月22日 21:00
oracle脚本编写教程(如何用一个字段作为CLOB编写Oracle插入脚本)
2026年7月13日 03:50
手机c语言编程(如何在手机上编写c语言C++Python程序等程序)
2026年6月21日 12:30
更多文章:
跷二郎腿太低好吗?想要通过贴墙站改正二郎腿影响的话,有哪些要点需要注意
2026年10月11日 05:10
易语言点击js按钮(易语言网页填表怎样点击链接为“javascript:void(0)“的按钮)
2026年10月11日 03:00
compare with造句(用compared with和compared to造句)
2026年10月10日 23:30
tensorflow与keras对应版本(为什么tensorflow2.8没有keras)
2026年10月10日 22:10
maven仓库jar网站(如何在maven仓库中添加jar包)
2026年10月10日 19:50




