too few argumens

#include <SoftwareSerial.h>
SoftwareSerial RFID(2, 3); // RX and TX
int data[14];
int angq[14] = {2,53,49,48,48,54,69,70,48,52,51,56,67,3};
int nando[14] = {2,53,49,48,48,54,69,53,70,52,69,50,69,3};
int monci[14] = {2,53,49,48,48,54,69,69,70,68,68,48,68,3};
int milan[14] = {2,53,49,48,48,54,69,69,70,69,50,51,3};
int newtag[14] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0}; // used for read comparisons
const int tes1 = 13;
const int tes2 = 12;
const int tes3 = 11;
const int tes4 = 10

void setup()
{
pinMode(tes1, OUTPUT);
pinMode(tes2, OUTPUT);
pinMode(tes3, OUTPUT);
pinMode(tes4, OUTPUT);
RFID.begin(9600);

}

boolean comparetag(int angq[14], int nando[14],int monci[14], int milan[14])
{
boolean ff = false;
int fg = 0;
for (int cc = 0 ; cc < 14 ; cc++)
{
if (angq[cc] == nando[cc] == monci[cc] == milan[cc])
{
fg++;
}
}
if (fg == 14)
{
ff = true;
}
return ff;
}

void checkmytags()
{
ok = 0;
if (comparetag(newtag, angq) == true)
digitalWrite(tes1, HIGH);
{
ok++;
}
if (comparetag(newtag, nando) == true)
digitalWrite(tes2, HIGH);
{
ok++;
}
if (comparetag(newtag, monci) == true)
digitalWrite(tes3, HIGH);
{
ok++;
}
if(comparetag(newtag, milan) == true)
digitalWrite(tes4, HIGH);
{
ok++;

}
}

void readTags()
{
ok = -1;

if (RFID.available() > 0)
{

delay(100);

for (int z = 0 ; z < 14 ; z++)
{
data1 = RFID.read();
newtag[z] = data1;
}
RFID.flush();

checkmytags();
}

if (ok > 0)
{

ok = -1;
}
else if (ok == 0)
{

ok = -1;
}
}

void loop()
{
readTags();
}

any wrong with this code ??

This is super weird:

if (angq[cc] == nando[cc] == monci[cc] == milan[cc])

It's very creative, but the compare should be with two integers.

I think it should be this:

if (angq[cc] == nando[cc] && angq[cc] == monci[cc] && angq[cc] == milan[cc])

It is hard to answer your question because you have not posted your code properly, and you have not told us what it is supposed to do.
However...

   if (angq[cc] == nando[cc] == monci[cc] == milan[cc])

probably does not do what you think it does.

Furthermore,

  if (comparetag(newtag, angq) == true)

tends to mark you as a newbie, because

  if (comparetag(newtag, angq))

is sufficient.

Please post your code properly (read the first two posts at the top of this forum), and tell us about your intent.

And if you're getting compile errors, POST THE ERROR MESSAGES!!! Do NOT paraphrase the error message, post the ENTIRE message. The error message tells you the exact line number, and character position of the error.

And how is this:

if (comparetag(newtag, nando) == true)

supposed to work, when you've defined the function as:

boolean comparetag(int angq[14], int nando[14],int monci[14], int milan[14])

Could that maybe be the source of your "too few arguments"?

Regards,
Ray L.

 boolean comparetag(int angq[14], int nando[14],int monci[14], int milan[14])

Each of those is a global array. If you mean to use those in the function, then there's no need to have them as arguments. If the arguments are truly not the same as those arrays, then the names of one of them should be changed. It is legal to have arguments with the same name as global variables, but it is really confusing and might not work the way you think it does.

I am looking for a program to read four pieces of RFID cards to light four LEDs, codding I got this from the internet, but when I compile error arises, like that which I experienced.