Надо написать помочь написать калькулятор.
Калькулятор должен уметь складывать, вычитать, делить, умножать, а также переводить из одной системы счисления в другую. Я смог написать код отдельно для математических операций и отдельно для перевода из систем счисления. Вроде соеденил все заработало, но преподователю нужно чтобы было кое что иное. Он хочет, как я понимаю, сначала мы вводим например 5+3 потом программа спрашивает в какой системе счисления дать ответ, потом мы соответсвенно выбираем систему и программа выводит результат в выбранной системе счисления. В моем коде преподователю не понравилось то что программа не разбита на маленькие функции, он я так понимаю, просит чтобы там была функция ввода, вывода, перевода из систем счисления, и соответсвенно функция самих математических операций.
Вот мой код:
Мат.операции:
Код: Выделить всё
int main (void)
{
float a, b;
char oper;
printf ("BBeguTe BbIPA}|{EHue:\n");
scanf ("%f %c %f", &a, &oper, &b);
if (b == 0)
printf ("Ha 0 geJIuTb HeJIb39\n");
else if ( oper == '+')
printf ("%.2f\n", a + b);
else if ( oper == '-')
printf ("%.2f\n", a - b);
else if ( oper == '*')
printf ("%.2f\n", a * b);
else if ( oper == '/')
printf ("%.2f\n", a / b);
getch();
return 0;
}
Перевод из систем счисления:
Код: Выделить всё
int main (void)
{
const char basedigits[16] = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f' };
int convertednumber[64];
long int numbertoconvert;
int nextdigit, base, index = 0;
//получить число и основание.
printf ("Number to be converted? ");
scanf ("%ld", &numbertoconvert);
printf ("Base? ");
scanf ("%i", &base);
do {
convertednumber[index] = numbertoconvert % base;
++index;
numbertoconvert = numbertoconvert / base;
}
while ( numbertoconvert != 0 );
printf("Converted number = ");
for (--index; index >= 0; --index ) {
nextdigit = convertednumber[index];
printf ("%c", basedigits[nextdigit]);
}
printf ("\n");
getch();
return 0;
}