Ответы пользователя по тегу C
  • Почему не срабатывает алгоритм определения палиндрома числа?

    kacToHbI4
    @kacToHbI4 Автор вопроса
    11 лет anykey - надоело, хочу в разработчики.
    Всем спасибо, работает, код следующий:

    /*Program that reads in a five-digit integer and determines whether or not it’s a palindrome.*/
    /*Created by kacToHbI4*/
    
    #include <stdio.h>
    
    int main(void)
    {
        int a,
            num1 = 10000, num2 = 1000, num3 = 100, num4 = 10, num5 = 1,
            num2_1, num3_1, num4_1, num5_1,
            result1, result2, result3, result4, result5;
    
        printf("Enter a five-digit number: ");
        scanf("%d", &a);
    
        /*****Block for separates the number into its individual digits.*****/
        /********************************************************************/
        result1 = a / num1;
        num2_1 = a % num1;
        result2 = num2_1 / num2;
        num3_1 = num2_1 % num2;
        result3 = num3_1 / num3;
        num4_1 = num3_1 % num3;
        result4 = num4_1 / num4;
        num5_1 = num4_1 % num4;
        result5 = num5_1 / num5;
    
        /*****This block determines whether or not it’s a palindrome.*****/
        /*****************************************************************/
        if(result1 == result5)
            {
                if(result2 == result4)
                {
                    printf("It's a palindrome.\n");
                }
            }
        if(result1 != result5)
        {
            printf("This is not palindrome.\n");
        }
        else if(result2 != result4)
        {
            printf("This is not palindrome.\n");
        }
    
        return 0;
    }
    Ответ написан
    Комментировать
  • Стоит ли с C# временно перейти на чистый C?

    kacToHbI4
    @kacToHbI4
    11 лет anykey - надоело, хочу в разработчики.
    На случай если букв много, то просто по пунктам:
    1. Начни читать Харви Дейтел, Пол Дейтел. КАК ПРОГРАММИРОВАТЬ НА С и делай оттуда все задачи.
    2. Параллельно посмотри весь курс или частично на канале https://www.youtube.com/user/ANTGPRO
    3. Постепенно смотри курс CS50 (https://javarush.ru/quests/QUEST_HARVARD_CS50) и делай оттуда задания, по возможности только со стандартными библиотеками Си, не с cs50.h.

    Для выполнения задач:
    1. Пиши в sublime-text
    2. Компилируй если из под винды, то MinGW; если линуха, то gcc (и про 1 и про 2 в уроках GenaANTG есть подробно).

    Если хочешь учить язык для какой-то конкретной цели, то это даже лучше и подстегнет, и простимулирует, и мотивирует, но надо трезво оценивать свои возможности, хотелки и расстояние до цели особенно! Не буду подталкивать тебя к какому-то конкретному шагу, но могу просто рассказать какова моя цель и какое расстояние я рассчитал до неё:
    Точка отправки (кратко):
    Работая в ИТ вот уже 6 лет, полтора года назад я в поисках очередной головоломки для себя абсолютно случайно зашёл на сайт electromost.com/index/soderzhanie_statej_po_raspbe... и меня понесло, причем рубил с плеча: купил сходу RaspberryPI 2, заказал по макетам автора по 5шт. плат радиомодуля и метестанции (потратил суммарно не меньше 15т.р. в течение 2 недель), даже вник в технологию пайки мелких smd компонентов, начал что-то делать по его мануалам и пришел к моменту где он использует Python, html, js - я мог бы пойти простым путем, просто копировать код и продолжать настраивать все по хаутушкам, но мне захотелось понимать код и я пришел на тостер с вопросом Как получить начальные знания HTML, JS и Python? . Здесь прерывается история настройки домашней автоматизации на RPI2.

    Следующий этап.
    Попав на сайт javarush.ru, я сначала смотрел лекции CS50 и параллельно решил поиграть в java на том же сайте, не помню до какого уровня дошел, но понял что мне много чего непонятно в работе программы, по сути я тупо переписывал код, как-то искал в интернете примеры решения задач и т.п. И сделал пару постов в вк, наподобие https://vk.com/photo2180429_429019262 . И тут вдруг мне пишет один из бывших коллег, он оказывается тоже увлекся программированием, но на СИ. Он меня убедил попробовать посмотреть курсы на youtube - GenaANTG Программирование на си и вообще начать изучение именно с СИ, поскольку там можно понять как работает комп, как работает память и как ей управлять и т.д. и т.п. На канале этого GenaANTG он очень доходчиво объясняет что к чему, очень интересно подходит к объяснению нюансов, но тоже для полноты картины чего-то не хватало.

    Третий этап.
    У меня неожиданно появилась четкая цель! Я не забил на систему домашней автоматизации, нет! Просто отложил и думал, вот погружусь глубже в программирование и буду разбираться лучше. Вот здесь то и появилась цель, я хочу написать на Си большой программный комплекс для домашней автоматизации с неким виртуальным помощником или ассистентом если хотите.
    Я смотрю курсы CS50, вместе с ними канал GenaANTG и пытаюсь решать задачи с курса CS50, встал на этапе решения задачи https://javarush.ru/quests/lectures/questharvardcs... Там предлагается использовать их готовую библиотеку для решения определенного ряда задач по курсу, но я захотел пользоваться стандартными библиотеками и пошел на тостер с вопросом Плохо ли смотреть готовый код задач по СИ, чтобы понять как это работает? После этого я решил задачу используя только стандартные библиотеки си, даже по-моему одну stdio.h. И сейчас уже не вспомню как и где я увидел или услышал, а может случайно скачал - я наткнулся на книгу Харви Дейтел, Пол Дейтел. КАК ПРОГРАММИРОВАТЬ НА С. И вот же оно!!!
    - Идеальная подача материала!
    - Огромное количество задач в конце каждой главы!

    Неожиданный момент:
    Предложили по знакомству пойти работать стажером SAP. Задумался, задал вопрос на тостере Из support в developer? Остался работать в техподдержке и продолжаю активно учить СИ и английский по мере возможности.

    В будущем, опять же если понадобится, перейду на C# и хочу также на нем написать с нуля мой главный проект автоматизации. Но это далекие планы.

    P.S. Хоть сам ещё зеленый, но если нужны советы или помощь обращайся (https://vk.com/kactohbi4), возможно ты наступил на те грабли? на которых я хорошо потанцевал)))
    Уже успел увидеть пару комментариев, сугубо мое личное мнение: советовать новичку начинать изучать программирование с C++ - это как положить асфальт сразу на газон, пропустив этап подготовки почвы песком, гравием и т.п. и возможно навсегда лишить человека желания обучаться программированию, к C++ на мой взгляд надо придти или перейти, по мне так это просто улучшенный Си, ну а раз так, то начинать надо с основы.
    Ответ написан
    Комментировать
  • По разному считается или ошибка в логике?

    kacToHbI4
    @kacToHbI4 Автор вопроса
    11 лет anykey - надоело, хочу в разработчики.
    Прочитал первый ответ и понял, что не так:

    /*The program should calculate and display the miles per gallon obtained for each tankful. After processing
    all input information, the program should calculate and print the combined miles per gallon
    obtained for all tankfuls*/
    
    #include <stdio.h>
    
    int main(void)
    {
        int counter = 0;
        float total_petrol = 0, total = 0, result = 0, total_way = 0, petrol = 0, way = 0;
        while(petrol != -1)
        {
            printf("Enter the gallons used (-1 to end): ");
            scanf("%f", &petrol);
            if(petrol != -1)
            {
            printf("Enter the miles driven: ");
            scanf("%f", &way);
            total_way += way;
            total_petrol += petrol;
            }
                if(petrol != 0)
                {
                    if(petrol != -1)
                    {
                    result = way / petrol;
                    printf("The miles/gallon for this tank was: %f\n", result);
                    }
                }
                else
                    printf("No results were entered!\n");
            counter++;
        }
            if(counter != 0)
            {
                total = total_way / total_petrol;
                printf("The overall average miles/gallon was %f\n", total);
            }
                else
                    printf("No results were entered!");
        return 0;
    }


    Получил:
    Enter the gallons used (-1 to end): 12.8
    Enter the miles driven: 287
    The miles/gallon for this tank was: 22.421875
    Enter the gallons used (-1 to end): 10.3
    Enter the miles driven: 200
    The miles/gallon for this tank was: 19.417475
    Enter the gallons used (-1 to end): 5
    Enter the miles driven: 120
    The miles/gallon for this tank was: 24.000000
    Enter the gallons used (-1 to end): -1
    The overall average miles/gallon was 21.601423
    Ответ написан