Оскільки тема вже не активна і я не хочу створювати нову.
Мої програми наче працюють, але я не впевнений що виконав умова правильно. Якщо є помилки, то вкажіть їх будь ласка. І підкажіть як виправити.
Отже, тут декілька простих завдань (після кожного мій розв'язок):
1) Через вказівники на вказівники підрахувати суму двох чисел і записати у третє.
▼Прихований текст
#include <iostream>
using namespace std;
int main()
{
double a, b;
cout << "Enter a, b --> ";
cin >> a >> b;
double *p_a = &a;
double *p_b = &b;
cout << *p_a + *p_b << endl;
system("pause");
return 0;
}
2) Написати примітивний калькулятор використовуючи тільки вказівники.
▼Прихований текст
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main()
{
double a, b;
char op;
cout << "Enter a --> ";
cin >> a;
cout << "Enter symbol --> ";
cin >> op;
cout << "Enter b --> ";
cin >> b;
char *sm = &op;
double *x = &a, *y = &b;
switch (*sm)
{
case '+':
cout << "\n" << "Result: " << *x + *y;
break;
case '-':
cout << "\n" << "Result: " << *x - *y;
break;
case '*':
cout << "\n" << "Result: " << *x * *y;
break;
case '/':
cout << "\n" << "Result: " << *x / *y;
break;
default:
cout << "\n" << "Sorry, error" << endl;
}
cout << endl;
system("pause");
return 0;
}
3) Знайти факторіал числа використовуючи тільки вказівники. (тут я ще пробував за допомогою посилань, але нічого путнього не отримав. Чекаю допомоги)
▼Прихований текст
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int Factorial(int *a)
{
if (*a > 0)
return Factorial(a - 1)* (*a);
else
return 1;
}
int main()
{
int a;
cout << "Enter a --> ";
cin >> a;
cout << "Result: " << Factorial(&a) << endl;
system("pause");
return 0;
}
4) Знайти задану степінь числа за допомогою вказівників.
▼Прихований текст
#include <iostream>
using namespace std;
int main()
{
int a, b;
cout << "Enter a and b (a^b) --> ";
cin >> a >> b;
int *x = &a, *y = &b;
int res = 1;
int *sum = &res;
for (int i = 0; i < *y; i++)
*sum *= *x;
cout << "res = " << *sum << endl;
system("pause");
return 0;
}
5) Виконати перевірку ділення на 0 за допомогою вказівників.
▼Прихований текст
// Тільки ділення
#include <iostream>
using namespace std;
int main()
{
double a, b;
cout << "Enter a, b --> ";
cin >> a >> b;
double *x = &a, *y = &b;
if (!(*y))
cout << "Sorry, divide by 0 is prohibited!" << endl;
else
cout << "Result = " << *x / *y << endl;
system("pause");
return 0;
}
Чекаю допомоги, форумчани.