In high school, anything less than half A's and half B's is bad if the student is in "regular" classes. If the student is in "honors" classes, anything less than all A's and one B is a bad report card. In either case, C's are an indication of a real problem that should be addressed. C's for an honor student probably indicates a lack of effort or an incorrect track into the honors program. C's for honors students are failing grades. Most graduate programs in college view the C the same way. C's for regular students prove a lack of effort or, if the student is trying, simply a tougher time in academic endeavors. I need to point out that grades are a very inconsistent indication of learning. Grades are about "playing the game," so grades are largely an indicator of a student's resourcefulness and dedication to a much larger degree than actual learning, though grades can be a wonderful indicator of learning too. This is why the whole process is kept in check by standardized testing. This testing is an attempt to evaluate what was actually learned by the student. Grades are used to measure success or lack of it particular to a learning task (the game).
I depends on what grade you are in. In elementary school, any B+'s or below are bad. In middle school, any B's or below are bad. In high school, it depends on your classes, but on average, any C+'s or below are bad.