Sunday 15 May 2011

Comparing the contents of arrays in C -



Comparing the contents of arrays in C -

does know why code printing "incorrect pin entered" after if statement, instead of "correct pin entered"? when alter if statement (input_pin != current_pin) works.

#include <stdio.h> #define pin_size 4 main() { int input_pin[pin_size]; int current_pin[pin_size] = {1,2,3,4}; int i; for(i = 0; < pin_size; i++) { printf("enter pin %d: ", i+1); scanf("%d", &input_pin[i]); } if(input_pin == current_pin) { printf("\ncorrect pin entered.\n"); } else { printf("\nincorrect pin entered!\n"); } flushall(); getchar(); }

the if(input_pin == current_pin) comparing 2 integer arrays. in c, arrays represented internally pointers. it's if comparing 2 int * variables. because input_pin , current_pin different arrays, 2 pointers never compare equal.

to accomplish comparing you're trying make, need compare each element of each pin individually.

c arrays

No comments:

Post a Comment