C++. В общем нужна с кодом. Дано натуральное число n и целочисленный квадратный массив размера nхn. Найти номера строк, элементы которых образуют симметричные последовательности (палиндромы). Сформировать из этих строк новый массив и удалить их из начального массива. Решить задачу, пользуясь статическими массивами. Все что удалось родить:
#include
using namespace std;
int
main()
{
double a[20][20];
int n;
cout << "n: ";
cin >> n;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
cin >> a[i][j];
}
}
cout << "massive: " << endl;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
cout << a[i][j] << "\t";
}
cout << endl;
}
bool isPalindrom = true;
for (int i = 0; i < n; i++)
{
isPalindrom = true;
for (int j = 0; j < n / 2 && isPalindrom; j++)
{
if (a[i][j] != a[i][n - 1 - j])
{
isPalindrom = false;
}
}
if (isPalindrom)
{
cout << "Stroka s indeksom " << i << " is Palindrom" << endl;
}
else
{
cout << "Stroka s indeksom " << i << " isn`t Palindrom" << endl;
}
}
bool issPalindrom = true;
for (int i = 0; i < n; i++)
{
issPalindrom = true;
for (int j = 0; j < n / 2 && issPalindrom; j++)
{
if (a[j][i] != a[n - 1 - j][i])
{
issPalindrom = false;
}
}
if (issPalindrom)
{
cout << "Stolb s indeksom " << i << " is Palindrom" << endl;
}
else
{
cout << "Stolb s indeksom " << i << " isn`t Palindrom" << endl;
}
}
}
Я смог из массива удалить 1 строку, будь лишь 1 палиндром, но если их больше, то ничего не выходит. Поэтому ту часть кода я удалил.
Решение на c++:
#include <iostream>
#include <ctime>
int main()
{
int N, i, a, b, k1 = 0, k2 = 0, s1 = 0, s2 = 0;
int A[10000];
std::cin >> a >> b >> N;
srand(time(0));
for (i = 0; i < N; i++)
{
A[i] = rand()%(b-a+1)+a;
if (A[i] < 50)
{
k1++;
s1 += A[i];
}
else
{
k2++;
s2 += A[i];
}
std::cout << A[i] << " ";
}
std::cout << std::endl << ((k1 == 0) ? 0 : (s1*1./k1)) << " ";
std::cout << ((k2 == 0) ? 0 : (s2 * 1. / k2)) << " ";
return 0;
}