#include <stdio.h>
#include <string.h>
int func(size_t,void*,void*,size_t);
int main(){
/* arrays and numbers to search in each array*/
int arrInt[]={3,4,5,15,6,24,7,13,12};
double arrD[]={1.1,1.4,1.5,2.2,7.6,10.2};
long arrL[]={10,20,30,40,50,60};
int i2s=7;
double d2s=7.6;
long l2s=40;
int x = func(sizeof(int), arrInt, &i2s, 9);
int y = func(sizeof(double), arrD, &d2s, 6);
int z = func(sizeof(long), arrL, &l2s, 6);
printf("%d %d %d\n", x
, y
, z
); }
int func(size_t size,void *arr,void* pnum,size_t arrSize){
for (int i=0 ; i != arrSize ; i++, arr = ((char*)arr)+size ) {
if(memcmp(arr
, pnum
, size
)==0) return i+1;
}
return -1;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCmludCBmdW5jKHNpemVfdCx2b2lkKix2b2lkKixzaXplX3QpOwppbnQgbWFpbigpewogICAgICAgIC8qIGFycmF5cyBhbmQgbnVtYmVycyB0byBzZWFyY2ggaW4gZWFjaCBhcnJheSovCiAgICAgICAgaW50IGFyckludFtdPXszLDQsNSwxNSw2LDI0LDcsMTMsMTJ9OwogICAgICAgIGRvdWJsZSBhcnJEW109ezEuMSwxLjQsMS41LDIuMiw3LjYsMTAuMn07CiAgICAgICAgbG9uZyBhcnJMW109ezEwLDIwLDMwLDQwLDUwLDYwfTsKICAgICAgICBpbnQgaTJzPTc7CiAgICAgICAgZG91YmxlIGQycz03LjY7CiAgICAgICAgbG9uZyBsMnM9NDA7CgogICAgICAgIGludCB4ID0gZnVuYyhzaXplb2YoaW50KSwgYXJySW50LCAmaTJzLCA5KTsKICAgICAgICBpbnQgeSA9IGZ1bmMoc2l6ZW9mKGRvdWJsZSksIGFyckQsICZkMnMsIDYpOwogICAgICAgIGludCB6ID0gZnVuYyhzaXplb2YobG9uZyksIGFyckwsICZsMnMsIDYpOwogICAgICAgIHByaW50ZigiJWQgJWQgJWRcbiIsIHgsIHksIHopOwp9CgppbnQgZnVuYyhzaXplX3Qgc2l6ZSx2b2lkICphcnIsdm9pZCogcG51bSxzaXplX3QgYXJyU2l6ZSl7CiAgICAgICAgZm9yIChpbnQgaT0wIDsgaSAhPSBhcnJTaXplIDsgaSsrLCBhcnIgPSAoKGNoYXIqKWFycikrc2l6ZSApIHsKICAgICAgICAgICAgICAgIGlmKG1lbWNtcChhcnIsIHBudW0sIHNpemUpPT0wKQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaSsxOwogICAgICAgIH0KICAgICAgICByZXR1cm4gLTE7Cn0=