Skip to content

Instantly share code, notes, and snippets.

@Denis903
Last active February 10, 2025 17:52
Show Gist options
  • Save Denis903/f9fa692f936bebe7a14635feb11e6d64 to your computer and use it in GitHub Desktop.
Save Denis903/f9fa692f936bebe7a14635feb11e6d64 to your computer and use it in GitHub Desktop.
// 1 Задача : Обмен значений трёх переменных через указатели
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
srand(time(NULL));
int a = 1, b = 2, c = 3;
int* p1 = &a, * p2 = &b, * p3 = &c,*pt = p1;
cout <<"a= "<< * p1 << " b= " << *p2 << " c= " << *p3 << endl;
pt = p1,p1 = p2,p2 = p3,p3 = pt;
cout << "a= " << *p1 << " b= " << *p2 << " c= " << *p3 << endl;
return 0;
}
//----То же задание, но сдвиг влево с помощью цикла-------
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
srand(time(NULL));
int a = 1, b = 2, c = 3;
int* p[] = {&a,&b,&c};
int temp = *p[0];
cout << "a= " << *p[0] << " b= " << *p[1] << " c= " << *p[2] << endl;
cout << "Сдвиг влево:" << endl;
for (int i = 0; i <=2 ;i++)
{
if (i == 2) { *p[i] = temp; cout <<" "<< * p[i] << " "; }
else { *p[i] = *p[i + 1]; cout <<" "<< * p[i] << " "; }
}
return 0;
}
//--------------------------------
// 2 Задача : Найти минимум из двух чисел через указатели.
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
srand(time(NULL));
int x,y;
cout << "Введите 2 числа :";
cin >> x >> y;
int* p1 = &x,*p2=&y;
cout << "\nМинимальное значение : "<<((*p1<*p2) ? *p1 : *p2);
return 0;
}
//--------------------------------
// 3 Задача : Является ли число простым.
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
srand(time(NULL));
int n; bool a;
cout << "Введите число : "; cin >> n;
int *p = &n;
for (int i = 2; i < *p; i++)
{
if (*p % i == 0) { a = true; }
}
if (a == true) { cout << " " << "\nНе простое число." << endl; }
else { cout << " " << "\nПростое число." << endl; }
return 0;
}
//--------------------------------
// 4 Задача : Вычислить факториал.
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
srand(time(NULL));
int n, proiz = 1,temp,prt;
cout << "Введите число : "; cin >> n;
int* p = &n;temp = (*p) - 1, prt = n;
while (temp > 1) { *p *= temp ;temp--; }
cout <<"Факториал "<<prt<<" = "<<*p<<endl;
return 0;
}
//--------------------------------
// 5 Задача : Палиндром или нет.
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
srand(time(NULL));
int n,revers=0,temp=0,kol_ch=0; //задаю тип числа-n, временной переменной-temp, кол.цифр в числе-kol_ch;
cout << "Введите число : "; cin >> n; //
int* p = &n;int orig = n; //Указатель на адрес числа n и копия оригинала числа n;
while (*p > 0)
{ revers = (temp * 10) + (*p % 10);*p /= 10;temp = revers;kol_ch++; } //В revers будет перевёрнутое число n;
for (int i = 0; i < kol_ch/2; i++) //Цикл на проверку условий совпадения крайних цифр orig и revers;
{
if (revers % 10 != orig % 10) {
cout << "Число не является палиндромом " << endl;return 0;
revers /= 10;orig /= 10;
}
if (revers % 10 == orig % 10) { revers /= 10;orig /= 10; }
}
cout << "Число является палиндромом " << endl;
return 0;
}
//--------------------------------
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment