No suit is required at all. This from the Carnival website FAQS:
Cruise Elegant Dining Dress Code: Gentlemen - Dress slacks, dress shirts. We also suggest a sport coat. If you wish to wear suits and ties or tuxedos, by all means we invite you to do so. Ladies - Cocktail dresses, pantsuits, elegant skirts and blouses; if you‘d like to show off your evening gowns, that's great too!
Not permitted in the dining room during the Cruise Elegant dinner for ladies and gentlemen: shorts, gym shorts, T-shirts, beach flip-flops, bathing suit attire, jeans, cut-off jeans, sleeveless shirts for men, sportswear, and baseball hats.
It is completely fine if you want to wear a tux or suit of any colour, but it certainly is not a requirement on any Carnival cruise. Those are Carnival's rules, I don't know where people come up with a suit is required. My husband will be wearing dress pants, long sleeve dress shirt and a tie - not because "it is my vacation and I will wear what I want" but because Carnival's dress code says it is quite appropriate to do so - which is precisely why we chose Carnival. We have no desire to dress in tuxes, suits or gowns to go to dinner and we are not required to on any Carnival ship. HAL or Cunard may be a better suited cruiseline for folks who think anyone not in a tux or suit should be dining at the buffet.