Задать вопрос
  • Есть ли способ упростить код программы или как уменьшить кол-во if?

    @deadem
    может решение и не идеальное


    На этот раз идеальное ;)

    Есть, разве что, пара совсем косметических рекомендаций:

    Полезно завести привычку не оставлять неинициализированных переменных, а сразу же задавать им значения. По мере роста скилла сами будете знать, когда переменные нужно специально оставлять неопределёнными. А привычка всегда их инициализировать сэкономит впоследствии кучу времени и спасёт много волос на голове.

    Стараться декларировать переменную максимально близко к месту её первого использования - не всегда программы будет получаться уложить в 5 строк.

    Переменная num у вас используется ровно один раз, значит, можно обойтись без неё.

    int a = 0;
    printf("Enter a five digit number: ");
    scanf("%d", &a);
    
    int num2 = 10000;
    while(a != 0) {
      printf("%d\t", a / num2);
      a %= num2;
      num2 /= 10;
    }
  • Есть ли способ упростить код программы или как уменьшить кол-во if?

    @deadem
    Ну, тут конструкции тривиальные, на самом деле. Целочисленное деление и остаток от деления есть и в вашем коде. Единственно, тут у меня сокращённые записи применяются, типа position *= 2, но это просто для сокращения текста, особо роли они не играют.

    Матана тут и близко нет, просто увидел степенную зависимость 1-2-4-8... которую можно представить, как последовательное умножение на два. Со временем такие конструкции у вас будут сами собой писаться.

    То, что первое решение, приходящее в голову, наивное - это совершенно нормально. Обычно так делают при решении сложных задач - пишут наивное решение, а затем улучшают его. Так как вы только учитесь, то для вас эта задача вполне может быть сложной. Поэтому всё прекрасно! Особенно хорошо, что вы увидели лес if-ов и он вам не понравился. Значит, чувство прекрасного у вас есть. А лаконичность придёт с опытом. Продолжайте! ;)
  • Есть ли способ упростить код программы или как уменьшить кол-во if?

    @deadem
    Жуть какая!

    И, это всё-таки C, а не C++. В точности то же самое можно написать примерно так:
    #include<stdio.h>
    
    int main() {
        int a = 0;
        printf("Enter a eight-digit binary number: ");
        scanf("%d", &a);
        
        int result = 0, position = 1;
        while (a != 0) {
            result += (a % 10) * position;
            position *= 2;
            a /= 10;
        }
    
        printf("Decimal number: %d\n", result);
        return 0;
    }
  • Плохо ли создавать проекты с нуля? Что значит быть про?

    @deadem
    SV999Z: Работали - и прекрасно! Только электричества едят много, требуют периодически разморозки, выглядят, как кирпич, но надёжны, как АК. Тут то же самое. Хочешь быть современным - стань красивым. Нужен только функционал - да всё и так работает.
  • Почему не могу сравнить innerHTML?

    @deadem
    Приведение типов работает. См. https://developer.mozilla.org/ru/docs/Web/JavaScri...

    В данном случае преобразований будет два:
    тип bool будет преобразован в число, затем строка будет преобразована в число, и только потом они будут сравнены.

    "test" == true -> "test" == 1 -> NaN == 1 -> false
    "test" == false -> "test" == 0 -> NaN == 0 -> false