Сложить числа и выполнить вычитание. 1. а) 1 010 101(2) + 10 000 101(2); б) 1 111 011 101(2) + 101 101 000(2);
в) 100 100 111,001(2) + 100 111 010,101(2); г) 607,54(8) + 1620,2(8); д) 3BF,A(16) + 313D(16).
2. а) 1 001 000 011(2) – 10 110 111(2); б) 111 011 100(2) – 10 010 100(2);
в) 1 100 110 110,001 1(2) - 11 111 110,01(2); г) 1 360,14(8) – 1 216,4(8); д) 33В,6(16)- 11В,4(16).
3. а) 11 001(2)*1 011 100(2); б) 451,2(8)*5,24(8); в) 2В,A(16)*36,6(16).
#include <iostream>
#include <string>
#include <conio.h>
#define ESC 27
using namespace std;
int main() {
char ch;
int sum = 0;
do {
ch = _getch();
if (ch == ESC) {
cout << "Output of the program:\n" << sum;
putchar('\n');
} else {
cout << ch;
sum += (int)ch;
putchar('\n');
}
} while (ch != ESC);
system("pause");
return 0;
}
Объяснение:
Ну... а что сложного? Создаёшь структуру, заполняешь её, и обрабатываешь условие на входном M:
#include <stdio.h>
#include <conio.h>
#include <locale.h>
int main(void) {
setlocale(LC_ALL, "russian");
struct months {
char name[16];
int days;
};
struct months m[12] = {
{"Январь", 31},
{"Февраль", 29},
{"Март", 31},
{"Апрель", 30},
{"Май", 31},
{"Июнь", 30},
{"Июль", 31},
{"Август", 31},
{"Сентябрь", 30},
{"Октябрь", 31},
{"Ноябрь", 30},
{"Декабрь", 31}
};
int M;
printf("Введите номер месяца: ");
scanf("%d", &M);
if (M > 0 && M < 13) {
M--;
if (m[M].days == 29 || m[M].days == 30) {
printf("В месяце \"%s\" %d дней.", m[M].name, m[M].days);
} else {
printf("В месяце \"%s\" %d день.", m[M].name, m[M].days);
}
} else {
printf("Неизвестный месяц.");
}
getch();
return 0;
}