Connecting Tech Pros Worldwide Forums | Help | Site Map

Extracting arrays

Umesh
Guest
 
Posts: n/a
#1: Jun 15 '07
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;}


Richard Tobin
Guest
 
Posts: n/a
#2: Jun 15 '07

re: Extracting arrays


In article <1181912130.559391.319460@i13g2000prf.googlegroups .com>,
Umesh <fraternitydisposal@gmail.comwrote:
Quote:
>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.
osmium
Guest
 
Posts: n/a
#3: Jun 15 '07

re: Extracting arrays


"Umesh" writes:
Quote:
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?


gw7rib@aol.com
Guest
 
Posts: n/a
#4: Jun 15 '07

re: Extracting arrays


On 15 Jun, 13:55, Umesh <fraternitydispo...@gmail.comwrote:
Quote:
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.

Ben Bacarisse
Guest
 
Posts: n/a
#5: Jun 15 '07

re: Extracting arrays


gw7rib@aol.com writes:
Quote:
On 15 Jun, 13:55, Umesh <fraternitydispo...@gmail.comwrote:
Quote:
>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.
Umesh
Guest
 
Posts: n/a
#6: Jun 16 '07

re: Extracting arrays


Count no. of same elements in an number array and then display the
result.

deepak
Guest
 
Posts: n/a
#7: Jun 16 '07

re: Extracting arrays


On Jun 16, 7:34 pm, Umesh <fraternitydispo...@gmail.comwrote:
Quote:
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?

Chris Dollin
Guest
 
Posts: n/a
#8: Jun 18 '07

re: Extracting arrays


Umesh wrote:
Quote:
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

Closed Thread