Unless you are also going to consider forces, you can't say the initial velocity of the object is 0. Perhaps though, the cannon fires horizontally from an elevated position, so all of the initial velocity is on the x axis, then the initial y velocity would be 0. If this is the case, then you can solve for the height because you know the time.
One of the biggest problems people have when using kinematics equations is that they don't ensure all of the vectors involved are in the same dimension.
This means that when you are solving for d, a displacement on the x axis, that vi must be the x component of the velocity, and that a must be the acceleration on the x-axis (there is none however)
You can write that equation for both y and x motion. When you write it for x, you have d=vixt and when you write it for y, you have h=1/2(g)t^2 assuming the initial velocity in the y direction is 0.
I don't know exactly what your variables are, but often times problems will require both the x and y equations, and they can be combined through the time variable.
And finally, the bit about the initial velocity being 0. I definitely see why you think that, but if the problem is dealing only with kinematics you should probably consider vi to be the muzzle velocity of the cannon. Otherwise you need to know the acceleration that the air cannon imparts on the projectile, and for how long. Then you could find the initial velocity as it leaves the cannon. I doubt the problem would be setup this way unless you are already working with forces.
I hope some of this makes sense, I'll try to better explain if something doesn't.