467,911 Members | 1,412 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 467,911 developers. It's quick & easy.

Extracting arrays

How can I extract common elements of two number arrays into another
array?

// the following doesn't work
for(k=0;k<10;k++)
for(l=0;l<15;l++)
if(p[k]==q[l]) {r[m]=p[k];++m;}

Jun 15 '07 #1
  • viewed: 1595
Share:
7 Replies
In article <11**********************@i13g2000prf.googlegroups .com>,
Umesh <fr****************@gmail.comwrote:
>How can I extract common elements of two number arrays into another
array?

// the following doesn't work
for(k=0;k<10;k++)
for(l=0;l<15;l++)
if(p[k]==q[l]) {r[m]=p[k];++m;}
What doesn't work about it?

You need to show us a complete program.

-- Richard

--
"Consideration shall be given to the need for as many as 32 characters
in some alphabets" - X3.4, 1963.
Jun 15 '07 #2
"Umesh" writes:
How can I extract common elements of two number arrays into another
array?

// the following doesn't work
for(k=0;k<10;k++)
for(l=0;l<15;l++)
if(p[k]==q[l]) {r[m]=p[k];++m;}
Congratulations Umesh! You finally figured out that the question belongs in
the message. The code fragment you posted doesn't show any means of starting
m at 0. Does the real code take care of that?
Jun 15 '07 #3
On 15 Jun, 13:55, Umesh <fraternitydispo...@gmail.comwrote:
How can I extract common elements of two number arrays into another
array?

// the following doesn't work
for(k=0;k<10;k++)
for(l=0;l<15;l++)
if(p[k]==q[l]) {r[m]=p[k];++m;}
This code looks OK to me, as long as you set m to zero beforehand and
r is big enough. The one snag I can see is that, if an element occurs
more than once in a list, and at least once in the other, it may be
selected in r more times than you want. One way round that might be to
change the value in p to some sort of non-value (eg you could use 0,
or -1, if this wasn't going to occur in the real data). An alternative
might be to have another array to indicate whether the value in p had
been "used" yet or not. It's up to you.

Hope this helps.
Paul.

Jun 15 '07 #4
gw****@aol.com writes:
On 15 Jun, 13:55, Umesh <fraternitydispo...@gmail.comwrote:
>How can I extract common elements of two number arrays into another
array?

// the following doesn't work
for(k=0;k<10;k++)
for(l=0;l<15;l++)
if(p[k]==q[l]) {r[m]=p[k];++m;}

This code looks OK to me, as long as you set m to zero beforehand and
r is big enough. The one snag I can see is that, if an element occurs
more than once in a list, and at least once in the other, it may be
selected in r more times than you want. One way round that might be to
change the value in p to some sort of non-value (eg you could use 0,
or -1, if this wasn't going to occur in the real data). An alternative
might be to have another array to indicate whether the value in p had
been "used" yet or not. It's up to you.
That "other array" already exists (r). If I were forced to use this
rather inefficient method, I'd write a "membership" function:

int in(int x, int p[], int l)
{
/* Return 1 if x is equal to any element in p[0]..p[l-1]; 0 otherwise */
int k;
for (k = 0; k < l; k++)
if (x == p[k])
return 1;
return 0;
}

and then do something like:

for (k = 0; k < sz1; k++)
if (!in(p[k], r, m) && in(p[k], q, s2))
r[m++] = p[k];

A much better way, is to sort p and q and the do a sort of
"anti-merge". That will be much faster for large arrays.

--
Ben.
Jun 15 '07 #5
Count no. of same elements in an number array and then display the
result.

Jun 16 '07 #6
On Jun 16, 7:34 pm, Umesh <fraternitydispo...@gmail.comwrote:
Count no. of same elements in an number array and then display the
result.
using this code if same number is there in any of the array more than
once,
it will copy again. Is it really needed?

Jun 16 '07 #7
Umesh wrote:
Count no. of same elements in an number array and then display the
result.
I get `17`.

--
Chris "DYOH" Dollin

Hewlett-Packard Limited Cain Road, Bracknell, registered no:
registered office: Berks RG12 1HN 690597 England

Jun 18 '07 #8

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

5 posts views Thread by Nazgul | last post: by
4 posts views Thread by effendi | last post: by
36 posts views Thread by Digital Puer | last post: by
reply views Thread by k_nil | last post: by
2 posts views Thread by bjm | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.