I am trying to improve a program I have, but there is one thing I cannot figure out to do... so, trying to make this short, this is what I'd like to accomplish:

Is there a way for C to count how many variables are equal to a particular value?
For example, say I have integers a,b,c,d and assign them like this:

Is there a way to save the amount of variables that equal a? (which would be 2.. or 3 if you count a).

I just really want to save a single numerical value that tells how many variables I have equal to something.

There is not a short and easy way to do that. If you need to search your variables for matching values, then they're related enough to put in an array:

int a[] = {4, 2, 4, 4};

And if you need to keep the names, it's only slightly more complex:

struct Variable
    char *name;
    int value;

struct Variable a[] =
    {"a", 4},
    {"b", 2},
    {"c", 4},
    {"d", 4},

An array makes the whole process of looking for matches much easier because you can throw everything in a loop:

for (int x = 0; x < sz; ++x)
    if (a[x] == key) ++matches;

I do agree with TOM GUNN.Its a nice way to do things using structure.

Still u can use simple variables.

int  *a={2,3,4,5,6,7};

int no_of_variables=6;
int value_to_match=2;
int counter=0;

if(a[i]==value_to_match) counter++;
printf("match variable is a_%d",i);
printf("Total mathch variales found is %d",counter);


Here variable are refered by a_0,a_1,a_2 like this in the output screen.
internaly a_1 means a[1] and so on.

This article has been dead for over six months. Start a new discussion instead.