- •Поэлементная обработка (программа должна содержать 1 цикл). Дан массив a[n], найти в нем
- •Наиболее длинную последовательность подряд идущих символов
- •Void main() {
- •Наиболее длинную возрастающую последовательность
- •Void main() {
- •Void main() {
- •Максимальный элемент меньше X
- •Void main() {
- •Количество элементов больше X
- •Void main() {
- •Количество элементов меньше X
- •Void main() {
- •Число элементов в диапазоне от X до y
- •Void main() {
- •Перебор. Дана матрица a[n][n] найти в ней
- •Подматрицу 2*2 с наибольшей суммой элементов
- •Void main() {
- •Int X, y, z; // X - координата по х, у по у, z - это сумма подматрицы. Сюда пишем ответ.
- •Количество элементов больших, чем все соседние элементы
- •Void main() {
- •Int z; // для текущих расчетов.
- •Количество элементов меньших, чем все соседние элементы
- •Void main() {
- •Int z; // для текущих расчетов.
- •Void main() {
- •Void main() {
- •Void main() {
- •По убыванию
- •Void main() {
- •По возрастанию модулей
- •Void main() {
- •По убыванию модулей
- •Void main() {
- •По возрастанию количества единичных бит в двоичном представлении числа
- •Int bits(int X) {
- •Void main() {
- •Поиск (самым простым способом). Даны массивы a[n] и b[m]. Найти
- •Первое вхождение массива b[m] в a[n]
- •Void main() {
- •Количество вхождений массива b[m] в a[n]
- •Void main() {
- •Последнее вхождение массива b[m] в a[n]
- •Void main() {
Перебор. Дана матрица a[n][n] найти в ней
Подматрицу 2*2 с наибольшей суммой элементов
Void main() {
int n = 4; // количество элементов
int arr[4][4] = {
{1, 2, 3, 4},
{5, 6, 8, 9},
{6, 3, 4, 5},
{3, 2, 8, 3}
};
int i = 0, j = 0, k; // "счетчики" для циклов. k - сумма подматрицы. Здесь текущее решение.
Int X, y, z; // X - координата по х, у по у, z - это сумма подматрицы. Сюда пишем ответ.
z = arr[0][0] + arr[0][1] + arr[1][0] + arr[1][1]; // задаем начальное значение для суммы.
for (i=0; i<n-1; i++) { // именно n-1, иначе вылезем за пределы массива, когда используем i+1 и j+1
for (j=0; j<n-1; j++) {
k = arr[i][j] + arr[i+1][j] + arr[i][j+1] + arr[i+1][j+1];
if (k > z) {
z = k;
x = j;
y = i;
}
}
}
printf("Koordinaty samoi bolshoi matricy 2x2: x=%i y=%i summa=%i", x, y, z);
// не забываем, что координаты считаются с нуля
}
Количество элементов больших, чем все соседние элементы
Void main() {
// считаем, что соседние элементы - это слева, справа, сверху, снизу
int n = 4; // количество элементов
int arr[4][4] = {
{1, 200, 3, 4},
{5, 6, 8, 900},
{6, 3, 100500, 5},
{3, 2, 8, 3}
};
int i = 0, j = 0, k = 0; // "счетчики" для циклов. k - искомое количество.
Int z; // для текущих расчетов.
for (i=0; i<n; i++) {
for (j=0; j<n; j++) {
z = 0;
if (i>0) z+=arr[i-1][j];
if (j>0) z+=arr[i][j-1];
if (i<n-1) z+=arr[i+1][j];
if (j<n-1) z+=arr[i][j+1];
if (arr[i][j] > z) k++;
}
}
printf("Iskomoe kolichestvo = %i", k);
}
Количество элементов меньших, чем все соседние элементы
Void main() {
// считаем, что соседние элементы - это слева, справа, сверху, снизу
int n = 4; // количество элементов
int arr[4][4] = {
{1, 200, 3, 4},
{5, 6, 8, 900},
{6, 3, 100500, 5},
{3, 2, 8, 3}
};
int i = 0, j = 0, k = 0; // "счетчики" для циклов. k - искомое количество.
Int z; // для текущих расчетов.
for (i=0; i<n; i++) {
for (j=0; j<n; j++) {
z = 0;
if (i>0) z+=arr[i-1][j];
if (j>0) z+=arr[i][j-1];
if (i<n-1) z+=arr[i+1][j];
if (j<n-1) z+=arr[i][j+1];
if (arr[i][j] < z) k++;
}
}
printf("Iskomoe kolichestvo = %i", k);
}
количество элементов, равных своему номеру строки