Целая часть от деления Остаток от деления12 div 2 = 6 12 mod 2 = 06 div 2 = 3 6 mod 2 = 03 div 2 = 1 3 mod 2 = 11 div 2 = 0 1 mod 2 = 1Остаток от деления записываем в обратном порядке. Получаем число в 2-ой системе счисления: 1100 12 = 1100|2 Для перевода дробной части числа последовательно умножаем дробную часть на основание 2. В результате каждый раз записываем целую часть произведения. 0.75*2 = 1.5 (целая часть 1) 0.5*2 = 1 (целая часть 1) 0*2 = 0 (целая часть 0) 0*2 = 0 (целая часть 0) Получаем число в 2-ой системе счисления: 1100 0.75 = 1100|2 В итоге получаем число: 1100.1100|2
12 = 1100|2
Для перевода дробной части числа последовательно умножаем дробную часть на основание 2. В результате каждый раз записываем целую часть произведения.
0.75*2 = 1.5 (целая часть 1)
0.5*2 = 1 (целая часть 1)
0*2 = 0 (целая часть 0)
0*2 = 0 (целая часть 0)
Получаем число в 2-ой системе счисления: 1100
0.75 = 1100|2
В итоге получаем число: 1100.1100|2
using namespace std;
typedef unsigned short int USI;
int main() {
/* инициализация */
USI n;
cout << "Количество учеников: ";
cin >> n;
USI a[n], g[n], f[n];
/* заполнение массивов */
size_t i;
for(i = 0; i < n; i++) {
cout << "Оценки ученика "
<< (i+1) << ":\n\n";
cout << "Алгебра: ";
cin >> a[i];
cout << "Геометрия: ";
cin >> g[i];
cout << "Физика: ";
cin >> f[i];
cout << "\n\n\n";
}
cout << "\n\nРЕЗУЛЬТАТЫ\n\n\n";
/* Средняя оценка по алгебре */
USI sum = 0;
for(i = 0; i < n; i++) {
sum += a[i];
}
cout << "Средняя оценка по алгебре: "
<< (sum/n) << '\n';
/* Количество учеников без двоек */
USI notwo = 0;
for(i = 0; i < n; i++) {
if ( (a[i] <= 2)
|| (g[i] <= 2)
|| (f[i] <= 2)
) {
continue;
}
else {
notwo++;
}
}
cout << "Учеников без двоек: "
<< notwo << '\n';
return 0;
}