I don't think engineers have to be the top of their class. I think they need to be motivated. It's not easy being an engineer, but if you like problem solving, making things better, and have good communication skills I think anyone can be an excellent engineer. I was not a great high school student and actually went to work as a drafter/designer because I could get into college. I enjoyed the job, but figured out I wanted to have more say in the design process. I went to 15 years of night school (and 4 schools) while working my way up the company in the chemical business. I eventually retired as the engineering manager for a major International chemical with 50+ engineers working for me. A better route is to finish school before starting work:-). As an engineering manager, I liked hiring engineers that have vision and drive, and those people were usually in the middle of their class. If you want to be an engineer... GO FOR IT. If you have trouble along the way, seek out help. There are a lot of people that will help you. Good luck
Having been an engineer for a while now, I believe that an engineer needs to be really....open-minded :). Generally speaking, people who approach a project, challenge, task, new job, new team...with an open mind tend to learn a whole lot more than they thought they would. It is in the process of that learning, that individuals can and do get smarter. I phrase my answer in this way because I totally understand that some people may measure "smartness" by how high grades are...and grade performance is important...but...to echo some of the answers that have also been provided, hard work and the determination to get to an acceptable answer that solves a problem, can also go a long way.
I have no doubt that you are really smart and will get smarter as you learn new things! Best of luck to you!
Intelligence certainly helps in any Career. But one often over-looked attribute of a good Engineer is the ability to carefully listen and to be open-minded when approaching a problem. The best solution is not always a conventional one. Also the ability to communicate well with non-engineers is very important. You will often deal with clients or the public who have a very limited understanding of engineering. The ability to talk to them in their own terms is very important.