1. Си / Говнокод #14082

    +134

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    int t, max, x;
    scanf("%d", &x);
    for(t=x%10; max!=t; max=t);
    for(t=x%100/10; max<t; max=t);
    for(t=x%1000/100; max<t; max=t);
    for(t=x/1000; max<t; max=t);
    printf("Max: %d\n", max);

    Нахождение максимальной цифры в 4-значном числе. Одна из первых лаб по Си. Предполагалось использование if, но студенты не ищут лёгких путей. (Сдвиги они пока не учили, так что на вычисление цифры не обращайте внимания.)

    Запостил: proDOOMman, 07 Ноября 2013

    Комментарии (8) RSS

    • > Сдвиги
      Покажите мне мастер-класс по использованию сдвигов для вычисления цифр в десятичной системе счисления :)
      Ответить
      • Деление на 10 через сдвиги (работает до 16388 включительно)...
        unsigned int x;
        unsigned int y = ((x << 12) + (x << 11) + (x << 8) + (x << 7) + (x << 4) + (x << 3) + (x << 1)) >> 16
        Студенты точно должны это уметь? :)
        Ответить
      • Оу, блин, надо больше спать.
        Ответить
    • красивая запись оператора :<
      Ответить

    Добавить комментарий