- •Поэлементная обработка (программа должна содержать 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() {
По убыванию модулей
Void main() {
int n = 9; // количество элементов
int a[9] = {-7, 1, 5, -3, 4, 5, -1, 5, 3};
int i = 0, j = 0, k;
for ( i = 0; i < n; i++ ) {
for ( j = 0; j < n - i - 1; j++ ) {
if ( abs(a[j]) < abs(a[j+1]) ) {
k = a[j+1];
a[j+1] = a[j];
a[j] = k;
}
}
}
for ( i = 0; i < n; i++ ) {
printf("%i ", a[i]);
}
}
По возрастанию количества единичных бит в двоичном представлении числа
Int bits(int X) {
int k = 0;
if (x == 0)
return 0;
else {
while (x > 1) {
k += x%2;
x>>=1;
}
return k+1;
}
}
Void main() {
int n = 17; // количество элементов
int a[17] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16};
int i = 0, j = 0, k;
for ( i = 0; i < n; i++ ) {
for ( j = 0; j < n - i - 1; j++ ) {
if ( bits(a[j]) > bits(a[j+1]) ) {
k = a[j+1];
a[j+1] = a[j];
a[j] = k;
}
}
}
for ( i = 0; i < n; i++ ) {
printf("%i ", a[i]);
}
}
Поиск (самым простым способом). Даны массивы a[n] и b[m]. Найти
Первое вхождение массива b[m] в a[n]
Void main() {
int n = 9, m = 3; // количество элементов
int a[9] = {7, 1, 5, 3, 4, 5, 1, 5, 3};
int b[3] = {1, 5, 3};
int i = -1, j = 0, k = 0; // "счетчик" для циклов. k - охренително важное служебное число.
while (k < m && i < n ) {
i++;
k=0;
for (j=0; j<m; j++) {
if (a[i+j] == b[j]) {
k++;
}
}
}
printf("Iskomii index = %i", i);
}
Количество вхождений массива b[m] в a[n]
Void main() {
int n = 9, m = 3; // количество элементов
int a[9] = {7, 1, 5, 3, 4, 5, 1, 5, 3};
int b[3] = {1, 5, 3};
int i = n, j = 0, k = 0; // "счетчик" для циклов. k - охренително важное служебное число.
int z = 0; // счетчик количества
while (i >= 0 ) {
i--;
k=0;
for (j=0; j<m; j++) {
if (a[i-j] == b[m-j-1]) {
k++;
}
}
if (m == k) z++;
}
printf("Kolichestvo = %i", z);
}