Напишите программу на C ++,которая:
1)
Считывает с клавиатуры два положительных целых числа, представляющих числитель и знаменатель дроби.
Максимально упрощает дробь.
Распечатывает полученную фракцию в формате num / den.
Предложение: дробь можно минимизировать, разделив числитель и знаменатель на их наибольший общий делитель. Реализуйте функцию для поиска такого значения: функция должна иметь прототип int gcd (int n1, int n2);, то есть она получает два числа, которые мы хотим проанализировать, как параметры, и в качестве результата возвращать их наибольший общий делитель.
Пример: Ниже приведен возможный пример выполнения (подчеркнутый текст вводится пользователем):
Числитель ввода: 12
Знаменатель входных данных: 18
Результат: 12/18 = 2/3
2)
прочитает n количество значений в массиве
отобразит его в обратном порядке.
Пример:
Введите количество элементов для хранения в массиве: 3
Введите 3 числа элементов в массиве:
элемент - 0: 2
элемент - 1: 5
элемент - 2: 7
Ожидаемый результат:
В массиве хранятся следующие значения:
2 5 7
Значения, сохраняемые в массиве в обратном порядке:
7 5 2
C/C++
Пожалуйста помогите написать программу на С++
// ООП-версия
#include <iostream>
using namespace std;
class Fraction {
public:
Fraction(const int num, const int den) : num(num), den(den) {
normalize();
}
pair<int, int> value()const {
return { num, den };
}
private:
int num;
int den;
void normalize() {
auto x = gcd(num, den);
num /= x;
den /= x;
if (den < 0) {
num *= -1;
den *= -1;
}
}
int gcd(int a, int b) {
a = abs(a);
b = abs(b);
while (a != b) {
if (a > b) swap(a, b);
b = b - a;
}
return a;
}
};
int main() {
system("chcp 1251 > nul");
cout << "Введите числитель: ";
int num;
cin >> num;
cout << "Введите знаменатель: ";
int den;
cin >> den;
Fraction frac(num, den);
auto [n, d] = frac.value();
cout << "Результат: " << num << '/' << den << " = " << n << '/' << d << '\n';
system("pause > nul");
}
#include <iostream>
using namespace std;
class Fraction {
public:
Fraction(const int num, const int den) : num(num), den(den) {
normalize();
}
pair<int, int> value()const {
return { num, den };
}
private:
int num;
int den;
void normalize() {
auto x = gcd(num, den);
num /= x;
den /= x;
if (den < 0) {
num *= -1;
den *= -1;
}
}
int gcd(int a, int b) {
a = abs(a);
b = abs(b);
while (a != b) {
if (a > b) swap(a, b);
b = b - a;
}
return a;
}
};
int main() {
system("chcp 1251 > nul");
cout << "Введите числитель: ";
int num;
cin >> num;
cout << "Введите знаменатель: ";
int den;
cin >> den;
Fraction frac(num, den);
auto [n, d] = frac.value();
cout << "Результат: " << num << '/' << den << " = " << n << '/' << d << '\n';
system("pause > nul");
}
#include <iostream>
using namespace std;
int gcd(int n1, int n2) {
return n2? gcd(n2, n1 % n2) : n1;
}
int main(){
setlocale(LC_ALL, "Russian");
int a, b;
cout << "Числитель ввода: ", cin >> a, cout << "Знаменатель входных данных: ", cin >> b;
cout << "Результат: " << a << '/' << b << " = " << a / gcd(a, b) << '/' << b / gcd(a, b) << endl;
}
#include <iostream>
using namespace std;
int main(){
setlocale(LC_ALL, "Russian");
int n;
cout << "Введите количество элементов для хранения в массиве: ", cin >> n;
int *a = new int[n];
cout << "Введите 3 числа элементов в массиве:" << endl;
for(int i = 0; i < n; cout << "элемент - " << i << ": ", cin >> a[i++]);
cout << "В массиве хранятся следующие значения:" << endl;
for(int i = 0; i < n || !(cout << endl); cout << a[i++] << ' ');
cout << "Значения, сохраняемые в массиве в обратном порядке:" << endl;
for(int i = n; i-- || !(cout << endl); cout << a[i] << ' ');
delete[] a;
}
using namespace std;
int gcd(int n1, int n2) {
return n2? gcd(n2, n1 % n2) : n1;
}
int main(){
setlocale(LC_ALL, "Russian");
int a, b;
cout << "Числитель ввода: ", cin >> a, cout << "Знаменатель входных данных: ", cin >> b;
cout << "Результат: " << a << '/' << b << " = " << a / gcd(a, b) << '/' << b / gcd(a, b) << endl;
}
#include <iostream>
using namespace std;
int main(){
setlocale(LC_ALL, "Russian");
int n;
cout << "Введите количество элементов для хранения в массиве: ", cin >> n;
int *a = new int[n];
cout << "Введите 3 числа элементов в массиве:" << endl;
for(int i = 0; i < n; cout << "элемент - " << i << ": ", cin >> a[i++]);
cout << "В массиве хранятся следующие значения:" << endl;
for(int i = 0; i < n || !(cout << endl); cout << a[i++] << ' ');
cout << "Значения, сохраняемые в массиве в обратном порядке:" << endl;
for(int i = n; i-- || !(cout << endl); cout << a[i] << ' ');
delete[] a;
}
Сагыныш Ергазиев
Спасибо
Похожие вопросы
- Пожалуйста, помогите написать программу на С++
- Помогите написать программу на С
- Помогите написать программу на C++
- Помогите написать программу на с++
- Помогите написать программу на с++
- Помогите написать программу
- Помогите написать программу на С++
- С++. Структуры(struct). Помогите написать программу
- Помогите написать программу на С++
- Помогите написать программу на СИ