The variable showerTime is declared as an array of integers. Unless you're taking in more than one integer value from the user, you do not need an array.

So it should be

Code:
int showerTime;
Secondly, you are attempting to do calculations here before there are any valid values on which to perform calculations:

Code:
int bps = showerTime*bpm;
You should simply declare the bps variable here, assigning it a known value to start, like 0:

Code:
int bps = 0;
Next up, because you've changed showerTime to be a simple integer rather than an array, you need to pass scanf the address of the variable using the & operator:

Code:
scanf("%i", &showerTime);
You were not getting any compiler error on that when it was an array because the name of an array is an alias to the address of the array's first element.

The isdigit function operates on a character, but you're not giving it a character, you're actually giving it an integer. Therefore this method of checking the validity of the input won't work. Instead, if you look at the scanf man page, you'll see this:

On success, the function returns the number of items of the argument list successfully filled.
Therefore, you should instead change the scanf call such that you assign the value returned, like so:

Code:
int check = scanf("%i", &showerTime);
If the value returned is 1, you can be certain that showerTime contains an integral value.

Once you've determined that the user has provided an integer value, you can then do the bps calculation:

Code:
bps = showerTime * bpm
Also, where bpm is constant, it is a better idea to declare it as such:

Code:
const int bpm = 12;
Hope this helps you understand.