Uploaded by levchikov.zhenya

Документ Microsoft Word

advertisement
#include <stdio.h>
#include <stdlib.h>
int main()
{
int numbers_nikitka;
while(1)
{
printf("Выберите номер программы: 15, 22, 27, 38 ,45\n");
scanf("%d", &numbers_nikitka);
switch (numbers_nikitka)
{
case 15:
printf("программа номер 15\n");
int n, a, s, k;
printf("Введите число которое хотите перевернуть: \n");
scanf("%i", &a);
for (n = a, s = 0; n != 0; n = n / 10) {
k = n % 10;
s = s * 10 + k; // Переворачивает число
}
printf("%i", s);// - Перевёрнутое число
printf("\n");
break;
case 22:
printf("программа номер 22\n");
printf("Напишите до какого числа будем искать простые числа \n");
int p, o, g, i, u, v, A[300000] = {};
scanf("%d", &v);
for (i = 0, u = 2; u < v; u++) {
for (p = 0, o = 2; o < u; o++)
if (u % o == 0) { p = 1; break; } // проверка на простое число
if (p == 0) A[i++] = u; //Запись в массив, если делители дошли до числа
A[i] = 0; //Выводит простые числа до v, только по методу флага
}
for (int g = 0; g < i; ++g) {
printf(" %d", A[g]);
}
printf("\n");
break;
case 27:
printf("программа номер 27\n");
int ii, val, m, nn;
printf("Напишите чило которое мы разложим на простые множители\n");
int C[1000];
scanf_s("%d", &val);
nn = 1000;
for (ii = 0; ii < nn - 1 && val != 1; ii++)
{
for (m = 2; val % m != 0; m++); //Поиск простого числа делителя
val /= m; C[ii] = m;
//Накопитель элементов
}
C[ii] = 0;
for (int j = 0; j < ii; j++) printf(" %d", C[j]); //Разложение числа на простые множители
printf("\n");
break;
case 38:
printf("программа номер 38\n");
printf("введите из скольких чисел будет состоять массив\n");
int si, sn, j, mm, b, ss, kk, massiv1, dobavit1;
scanf_s("%d", &massiv1);
int c[100];
for (si = 0; si < massiv1; si++)
{
scanf_s("%d", &dobavit1);
c[si] = dobavit1;
}
sn = massiv1;
for (si = kk = mm = 0; si < sn; si++)
if (c[si] == c[si + 1]) kk++; //Проверка на одинаковые подряд идущие
else {
if (kk > mm) mm = kk, b = si - kk; //Поиск максимума
kk = 1;
}
printf("%i, %i\n", mm, b); // Программа выводит количество первых чисел, встречающихся в массиве более
одного раза, с указанием того, после какого элемента эти пары появляются в массиве.
printf("\n");
break;
case 45:
printf("программа номер 45\n");
printf("введите из скольких чисел будет состоять массив\n");
int D[1000];
int jj, ns, is, ks, max, massiv,dobavit;
scanf_s("%d", &massiv);
for (jj = 0; jj < massiv; jj++)
{
scanf_s("%d", &dobavit);
D[jj] = dobavit;
}
int B[10];
ns = massiv;
for (jj = 0, max = D[0]; jj < ns; jj++) //max = максимальный элемент
if (D[jj] > max) max = D[jj];
for (jj = 0; jj < massiv; jj++) {
for (ks = 0, is = 1; is < ns; is++) //Сортировка
if (D[is] < D[ks]) ks = is;
B[jj] = D[ks];
D[ks] = max;
}
for (is = 0; is < massiv; is++) {
printf("B[%i]: %i\n",is, B[is]); // Сортирует массив А выводя его по возрастанию.
}
break;
}
}
}
Download