почему этот код ничего не возвращает в C

#c #return #return-value #return-type

#c #Возврат #возвращаемое значение #возвращаемый тип

Вопрос:

 #include<stdio.h>
int main()
{
    int u1,u2;
    
    printf("Enter two num : ");
    scanf("%d %d",amp;u1,amp;u2);

    return u1 == 30 || u2 == 30 || (u1 u2 == 30);
}
  

Вопрос: напишите программу на C для проверки двух заданных целых чисел и верните true, если одно из них равно 30 или если их сумма равна 30.
Я новичок в программировании, если кто-нибудь поможет мне понять, что не так в этом коде. Он должен возвращать 1 или True

Комментарии:

1. Когда вы говорите «программа ничего не возвращает», вы имеете в виду «программа не создает никаких выходных данных в терминале»?

2. Я не думаю main() , что возвращается в какую-либо другую область, чтобы программист мог увидеть, что он возвращает?

3. В принципе, вы могли бы проверить код выхода программы , чтобы увидеть, какое значение возвращается из main() . Рохан, это то, что ты хочешь сделать?

4. Да, @RSahu .. но теперь у меня есть решение. Спасибо

5. Пожалуйста, поделитесь, с какой именно проблемой вы столкнулись, вместо того, чтобы публиковать полную проблему [домашнее задание]

Ответ №1:

Возвращаемое значение сопоставляется с кодом завершения процесса. Обычно 0 это успех, поэтому у этого будет сбой, если это логически верно.

Возможно, вы захотите поместить это в соответствующую функцию и написать a printf для ее отображения:

 #include <stdio.h>

int compare()
{
    int u1,u2;
    
    printf("Enter two num : ");
    scanf("%d %d",amp;u1,amp;u2);

    return u1 == 30 || u2 == 30 || (u1 u2 == 30);
}

int main(int argc, char** argv) {
  printf("Result=%dn", compare());

  return 0;
}
  

Совет: вместо того, чтобы принимать интерактивный ввод, обратите внимание, как argv это похоже на ожидание ввода в качестве аргументов командной строки!