zergerge zergerge - 1 year ago 200
C Question

C: scanf to array

I'm absolutely new to C, and right now I am trying master the basics and have a problem reading data from scanf straight into an array.

Right now the code looks like this:

int main()
int array[11];
printf("Write down your ID number!\n");
scanf("%d", array);
if (array[0]=1)
printf("\nThis person is a male.");
else if (array[0]=2)
printf("\nThis person is a female.");
return 0;

As you can see, the program's aim is to ask for an ID, and determine from the first number whether the given the person is male(1) or female(2).
However it seems I can't get it to work, because the array is not filled properly (this is checked via a printf(array) right after scanf, that results in random numbers).
Running the program like this will give the result that the person is a male, no matter what number you read in.

So trivial it may seem, I couldn't figure out the problem.

Answer Source

if (array[0]=1) should be if (array[0]==1).

The same with else if (array[0]=2).

Note that the expression of the assignment returns the assigned value, in this case if (array[0]=1) will be always true, that's why the code below the if-statement will be always executed if you don't change the = to ==.

= is the assignment operator, you want to compare, not to assign. So you need ==.

Another thing, if you want only one integer, why are you using array? You might want also to scanf("%d", &array[0]);

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download