Возвращаемые значения в программировании на C - PullRequest
0 голосов
/ 30 апреля 2019
  1. Я хочу, чтобы программа продолжала работать, пока я не решу закрыть ее и очищать экран каждый раз, когда вы конвертируете число (готово)

  2. Проблема, с которой я столкнулся в этом текущем коде, заключается в том, что ... если я нажимаю 1-ю опцию, я получаю правильный результат ... но если я нажимаю ту же опцию или любую другую опцию, она продолжает добавлять вещи ... например ... вариант 1. dec-bin. 10 = 1010. после этого программа продолжает работать, и если я выбираю ту же опцию, я получаю результат ..10 = 10101010

switch(option)
{
   case 1: //if 1 is selected
        printf("\nEnter Decimal to convert to Binary:"); //Prints the message between quotes
        scanf("%d",&dec); //Reads the Decimal number
        num=dec;

        while(dec!=0)
        {
            rem=dec%2;
            bin=bin+rem*i;
            dec=dec/2;
            i=i*10;
        }

        printf("\nThe Binary number is: %d \n\n",bin); //Prints the converted number

        system("pause"); //Pauses program
        system("cls"); //Clears the screen
        return 0;
        break;

1 Ответ

0 голосов
/ 30 апреля 2019

например ... вариант 1. dec-bin.10 = 1010.после этого программа продолжает работать, и если я выбираю ту же опцию, я получаю результат ..10 = 10101010

вы пропустили сброс bin и i поэтому bin накапливается, первый раз выдает 1010, затем вы снова добавляете ('append') 1010, вырабатывая 10101010

do bin = 0; i = 1; до while(dec!=0) ...

Дополнительные замечания:

  • у вас есть риск переполнения на bin , вы можете использовать строку, которую вы напечатаете, в том порядке, в котором вы ее заполнили
  • , которую необходимо проверитьпользователь вводит правильный номер проверки scanf возвращает 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...