2014-09-14 2 views
-5
if (5>=hour && hour<9){ 
    if(minute<7){ 
     printf("%d:00"); 
     return 0;} 
    else if (8<=minute && minute<22){ 
     printf("%d:15",hour); 
     return 0;} 
    else if (22<=minute && minute<37){ 
     printf("%d:30",hour); 
     return 0;} 
    else if (38<=minute && minute<52){ 
     printf("%d:45",hour); 
     return 0;} 
    else{ 
     hour+=1; 
     printf("%d:00"); 
     return 0;} 

После компиляции значения кода полностью отключены, что не так с моими утверждениями? Я могу сделать код длиннее и заставить его работать, но я пытаюсь его упростить.Диапазон выражений IF в программировании на языке С

EDIT: В основном я пытаюсь сказать, что вывод «5:01» должен быть «5:00», и если мой вход «5:22», выход должен быть «5:30».

Однако мои выходные значения выходит быть «2686748: 00»

+0

Что должен делать код? Кроме того, первый оператор if и условный оператор first else, в отличие от второго, являются условными. Вы узнали о целых делениях и усечениях? – Warty

+0

«после компиляции значения кода полностью отключено» - извините, я не понимаю. – mafso

+3

Вам не хватает информации. Если минута 7 или 37, код полностью неправильный. – gnasher729

ответ

1

Линия printf("%d:00"); должна быть:

printf("%d:00", hour); 

Смотрите, если вы можете превратить ваш уровень предупреждений компилятора, современные компиляторы, как правило, в состоянии предупредить об этой ошибке.

+0

Спасибо, я только что начал программировать и был на ней так долго, что не могу даже найти свои ошибки. –

+0

@ Quan: Мы все должны что-то начать. Я все время делаю глупые ошибки! –

Смежные вопросы