Need some help with LED binary counter, not sure if it's hardware or software

Okay - This first line describes leds as an array. those element are leds[0]=2, leds[1]=3,leds[2]=4 and leds[3]=5 which I take to mean pins 2, 3, 4 & 5
Arrays in C start with element 0.
int leds[] = {2, 3, 4, 5};

data is also defined as an array data[0] through data[3] for 4 elements.
char data[4];

Now in this function you use leds but without a subscript (that's what the number between the [ ] is called) and I should go from 3 down. You have no idea what is in leds[4] because you didn't initialize it.
void displayNumber() {
for (int i=3; i > 0; i--) { // old line - for (int i=4; i >= 0; i--) {
if (data == '1') { // old line - if (data == '1') {
_ digitalWrite(leds*, HIGH); // old line - digitalWrite(leds, HIGH);_
_
} else {_
_ digitalWrite(leds, LOW); // old line - digitalWrite(leds, LOW);
}
}
delay(1000);
}*
Also try some indenting as it makes it much easier to read and debug._