Иллюстрированный самоучитель по С++ для начинающих

Решения (задачи 180-197)

Задача 180.

// Преобразует десятичное число в шестнадцатеричное
#include <stdio.h> #include <conio.h> void main()
int n; // Исходное число
int r; // Остаток от деления числа на основание
// системы счисления char st[5]; // Представление числа в заданной
// системе, счисления int i;
printf("\п Преобразование десятичного числа);
printf("в шестнадцатеричное\п");
printf("Введите целое число › "); scanf("%d", &n);
// делим исходное число на 16 до тех пор,
// пока остаток от деления больше 16
printf("\п Десятичному числу %d", n);
printf(" соотвествует шестнадцатеричное ");
st[5] = '\0';
i = 4;
do {
r=n%16; // очередная цифра
n = n / 16; // целая часть рез-та деления
if (г < 10) /
st[i- ] = г + 48; // (int)'0'=48, (int) Ч'=49 и т. д.
else st[i- ] = г + 55; // (int) 'A'=65, (int) 'B'==66
// и т. д.
} while (n > 0);
// удалим начальные пробелы
int j = 0; while(st[i])
st[j] = '\0'; printf("%s\n", st);
printf("\п Для завершения нажмите Enter");
getch();

Задача 181.

// Вычисление значения арифметического выражения
#include <stdio.h> (#include <conio.h> ftinclude "stdlib.h" void main() {
char st[40]; // строка
char buf[10]; // изображение очередного числа
char op; // оператор
int rez; // значение выражения
int n; // очередное число
int i,j;
printf("Хп Введите арифметическое выражение,\п");
printf("например, 45+5-3-125+2 и нажмите <strong>Enter</strong>");
printf("(пробелы и другие знаки недопустимы)\п");
printf(" › "); scanf("%s", &st);
rez = 0; // значение выражения op = '; i = j = 0; while(st[i])
// выделить число
0;
while (st[i] >= '0' && st[i] <= '9')
buf[j++] = st[i++]; buf[j] = '\0';
n = atoi(buf); // преобразовать строку в целое
// выполнить действие
switch (op)
case '+': rez += n; break;
case '-': rez – = n; break;
case ' ': rez = n; break; // первое число примера
// выделить знак операции op = st
printf("Значение введенного выражения: %d", rez);
printf("\п Для завершения нажмите Enter");
getch();
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.