| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 799 人关注过本帖
标题:找出相同数组中相同的元素
只看楼主 加入收藏
wangpai7776
Rank: 1
来 自:北京
等 级:新手上路
帖 子:56
专家分:0
注 册:2006-1-6
收藏
 问题点数:0 回复次数:6 
找出相同数组中相同的元素

#include <iostream.h>
void main()
{ int a[20]={5,4,3,8,1,5,2,4,6,7,1,9,0,3,8,0,4,3,5,7};
int i,j,k=0;
int b[10];
for(i=0;i<20;i++)
{
for(j=0;j<20;j++)
while(i!=j)
{
if(a[i]==a[j])
{
b[k]=a[i];
k++;
}
}
}
for(int l=0;l<10;l++)
cout《b[l]《endl;
}
请问,按以上方法,能找出a[]数组中相同的元素,放入b[]中吗?如果不能,应该怎么做啊?

搜索更多相关主题的帖子: 元素 
2006-03-10 17:26
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
收藏
得分:0 
可以 不过最后那里
for(int l=0;l<k;l++)

天行健,君子以自强不息!!QQ:68660681
2006-03-10 17:29
woodhead
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:1124
专家分:0
注 册:2005-7-18
收藏
得分:0 

首先

while(i!=j)

死循环


2006-03-10 18:38
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
收藏
得分:0 

哦 对
for(i=0;i<20;i++)
for(j=i+1;j<20;j++)
while((i!=j)&&(j<20))
{
if(a[i]==a[j]) b[k]=a[i];
k++;
}

for(i=0;i<k;i++)
{
ok=1;
for(j=0;j<i;j++)
if(b[j]==b[i]) ok=0;
if(ok) cout<<b[i];
}




天行健,君子以自强不息!!QQ:68660681
2006-03-10 21:57
ElfDN
Rank: 4
等 级:贵宾
威 望:11
帖 子:291
专家分:0
注 册:2005-11-13
收藏
得分:0 

#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int a[20]={5,4,3,8,1,5,2,4,6,7,1,9,0,3,8,0,4,3,5,7},b[20];
sort(a,&a[20]);
for(int i=19,j=0; i>0; i--)
if(a[i]==a[i-1]){
b[j]=a[i];
while(a[i]!=a[i-1]) i--;
j++;
}
}

2006-03-11 05:05
lion_love
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-3-11
收藏
得分:0 
以下是引用maoguoqing在2006-3-10 21:57:00的发言:

for(i=0;i<20;i++)
for(j=i+1;j<20;j++)
while((i!=j)&&(j<20))
{
if(a[i]==a[j]) b[k]=a[i];
k++;
}

for(i=0;i<k;i++)
{
ok=1;
for(j=0;j<i;j++)
if(b[j]==b[i]) ok=0;
if(ok) cout<<b[i];
}



我就不明白楼主为什么非要用while(),已经有两个循环了,应该够了吧?还有楼主把“正确”代码发上来之前先稍微检验一下正确性比较好,呵呵。
我也是新手,我没有对楼主的程序没有很大的改动,只是一点点,希望大家指正。

#include <iostream>
using namespace std;
void main()
{ int a[20]={5,4,3,8,1,5,2,4,6,7,1,9,0,3,8,0,4,3,5,7};
int i,j,k=0;
int b[100];
for(i=0;i<20;i++){
for(j=0;j<20;j++)
if(i<j)
{
if(a[i]==a[j]) {
b[k]=a[i];
k++;}
}
}
for(i=0;i<k;i++)
{
int ok=1;
for(j=0;j<i;j++)
if(b[j]==b[i])
ok=0;
if(ok)
cout<<b[i]<<endl;
}

}


[此贴子已经被作者于2006-3-11 8:40:59编辑过]

2006-03-11 08:40
wangpai7776
Rank: 1
来 自:北京
等 级:新手上路
帖 子:56
专家分:0
注 册:2006-1-6
收藏
得分:0 

谢谢各位!
我用while的原因,主要是为了去除一种情况,即a[i]=a[i]时,不算重复相同元素。


认真你就输了
2006-03-11 23:15
快速回复:找出相同数组中相同的元素
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028618 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved