Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Написать программу, выполняющую сортировку одномерного массива целыхСтр 1 из 3Следующая ⇒
Элементы двумерного массива размерностью 3 на 4 инициализировать // случайными числами от 10 до 30. Вывести исходный массив.Затем обнулить // вторую строку и вывести измененный массив.
#include < iostream> #include < time.h> using namespace std; void main() { setlocale(LC_ALL, " rus"); const int ROW = 3; const int COL = 4; int a[ROW][COL]; srand(time(0)); for (int i = 0; i < ROW; i++) { for (int j = 0; j < COL; j++) { a[i][j] = rand() % 21 + 10; } } cout < < " Исходный массив: \n"; for (int i = 0; i < ROW; i++) { for (int j = 0; j < COL; j++) cout < < a[i][j] < < " \t"; cout < < " \n"; } for (int i = 0; i < ROW; i++) { for (int j = 0; j < COL; j++) { a[1][j] = 0; } } cout < < " Измененный массив: \n"; for (int i = 0; i < ROW; i++) { for (int j = 0; j < COL; j++) cout < < a[i][j] < < " \t"; cout < < " \n"; } system(" pause"); } Элементы квадратной матрицы 5 на 5 инициализировать случайными числами // от 0 до 10. Найти сумму максимальных элементов всех столбцов. #include < iostream> #include < time.h> using namespace std; void main() { setlocale(LC_ALL, " rus"); const int ROW = 5; //строки const int COL = 5; // столбцы int a[ROW][COL]; int sum = 0; srand(time(0)); for (int i = 0; i < ROW; i++) { for (int j = 0; j < COL; j++) { a[i][j] = rand() % 10 + 0; //? } } cout < < " Исходный массив: \n"; for (int i = 0; i < ROW; i++) { for (int j = 0; j < COL; j++) cout < < a[i][j] < < " \t"; cout < < " \n"; } for (int j = 0; j < COL; j++) { int max = 0; for (int i = 0; i < ROW; i++) { if (a[i][j] > max) { max = a[i][j]; } } sum += max; } cout < < " Сумма максимальных элементов всех столбцов " < < sum < < " \n";
system(" pause"); } Напишите функцию сортировки одномерного массива целых чисел по // невозрастанию(убыванию) методом выбора максимального элемента. переделать #include < iostream> #include < time.h> #include < stdlib.h> using namespace std; void main() { setlocale(LC_ALL, " rus"); const int SIZE = 5; int a[SIZE]; int imax; cout < < "..."; for (int i = 0; i < SIZE; i++) { cout < < " a[" < < i < < " ]="; cin > > a[i]; }
for (int t = 0; t = SIZE - 1; t++){ imax = t; for (int i = t + 1; i < SIZE; i++) { if (a[i] > a[imax]) imax = i; } int tmp = a[t]; a[t] = a[imax]; a[imax] = tmp; } cout < < " Отсортированный массив: \n"; for (int i = 0; i < SIZE; i++) cout < < a[i] < < " \t"; cout < < " \n";
system(" pause"); }
Написать программу, выполняющую сортировку одномерного массива целых // чисел по возрастанию методом пузырька.Направление просмотров – слева // направо, минимизировать число просмотров. #include < iostream> #include < time.h> #include < stdlib.h> using namespace std; void main() { setlocale(LC_ALL, " rus"); const int M = 5; int a[M]; int tmp; bool p = true; for (int i = 0; i < M; i++) { cout < < " a[" < < i < < " ]="; cin > > a[i]; } for (int n = M - 1; n > 0 & & p; n--) { p = false; for (int i = 0; i < n; i++) if (a[i] > a[i + 1]) { tmp = a[i]; a[i] = a[i + 1]; a[i + 1] = tmp; p = true; } } cout < < " Отсортированный массив: \n"; for (int i = 0; i < M; i++) cout < < a[i] < < " \t"; cout < < " \n";
system(" pause"); }
//*Написать программу, выполняющую сортировку одномерного массива целых чисел по убыванию методом вставок.
#include < iostream> #include < time.h> using namespace std; void main() { setlocale(LC_ALL, " rus"); const int M = 6; srand(time(0)); int a[M], j = 0, tmp;
for (int i = 0; i < M; i++){ a[i] = rand() % 10; }
for (int i = 0; i < M; i++){ cout < < a[i] < < " "; } cout < < " \n";
for (int i = 0; i < M - 1; i++) { tmp = a[i + 1]; j = i; while (j > = 0 & & a[j] > tmp) { a[j + 1] = a[j]; j--; } a[j + 1] = tmp; } cout < < " Отсортированный массив: \n"; for (int i = 0; i < M; i++) cout < < a[i] < < " \t"; cout < < " \n";
system(" pause"); }
// Дан массив случайных чисел в диапазоне от -20 до 20. Найти позиции самого левого //отрицательного элемента и самого правого отрицательного элемента и отсортировать //элементы между ними по убыванию. #include < iostream> #include < time.h> #include < stdlib.h> using namespace std; void main() { setlocale(LC_ALL, " rus"); srand(time(0)); const int M = 10; int a[M]; int left, right; int tmp; for (int i = 0; i < M; i++) { a[i] = rand() % 41 - 20; } cout < < " Исходный массив: \n"; for (int i = 0; i < M; i++) cout < < a[i] < < " \t"; cout < < " \n"; for (int i = 0; i < M; i++) { if (a[i] < 0) left = i; break; } for (int i = M - 1; i > = 0; i--) { if (a[i] < 0) { right = i; break; } } for (int k = right - 1; k > left + 1; k--) { for (int i = left + 1; i < k; i++) { if (a[i] > a[i + 1]) { tmp = a[i]; a[i] = a[i + 1]; a[i + 1] = tmp; } } } cout < < " Отсортированный массив: \n"; for (int i = 0; i < M; i++) cout < < a[i] < < " \t"; cout < < " \n"; system(" pause");
} // Дан массив случайных чисел от 0 до 20. Пользователь вводит число. // Необходимо найти самую левую позицию этого часла в массиве. // отсортировать элементы с права от найденого по возрастанию, а слева по убыванию.\
#include < iostream> #include < time.h> #include < stdlib.h> using namespace std; void main() { setlocale(LC_ALL, " rus"); srand(time(0)); const int KUKU = 10; int mas[KUKU]; int chislo; int val, tmp;
for (int i = 0; i < KUKU; i++) { mas[i] = rand() % 21; } for (int i = 0; i < KUKU; i++) { cout < < mas[i] < < " "; } cout < < " Введите число" < < " \n"; cin > > chislo; for (int i = 0; i < KUKU; i++) { if (mas[i] == chislo) { val = i; cout < < " Позиция введенного числа " < < i < < " \n"; break; } } if (val < 0 || val > = KUKU) { cout < < " Ошибка! "; system(" pause"); exit(0); } for (int k = KUKU - 1; k > val + 1; k--) // по возростанию { for (int i = val + 1; i < k; i++) { if (mas[i] > mas[i + 1]) { tmp = mas[i]; mas[i] = mas[i + 1]; mas[i + 1] = tmp; } } }
for (int k = val - 1; k > 0; k--) // по убыванию { for (int i = 0; i < k; i++){ if (mas[i] < mas[i + 1]){ tmp = mas[i]; mas[i] = mas[i + 1]; mas[i + 1] = tmp; } } }
cout < < " Отсортированный массив: \n"; for (int i = 0; i < KUKU; i++){ cout < < mas[i] < < " \t"; } cout < < " \n"; system(" pause"); }
// Написать ф-цию с переменным количеством аргументов, которая в качестве обязательного // параметра принимает тип действия и количество переменных и выполняет // выбраное действие над этими переменными. // " +" - сложение, " *" - умножение, " s" - среднее арифметическое. // Например: // double R = cale('s', 5, 3, 4, 5, 3, 7); // cout < < R; // На экране мы увидим 4.4
#include < iostream> using namespace std; int arithmetic(char simvol, int koll, int grupa,...); void main() { setlocale(LC_ALL, " rus"); cout < < "... " < < arithmetic('+', 5, 1, 2, 3, 4, 5) < < " \n"; cout < < "... " < < arithmetic('*', 5, 1, 2, 3, 4, 5) < < " \n"; cout < < "... " < < arithmetic('s', 5, 1, 2, 3, 4, 5) < < " \n";
system(" pause"); }
int arithmetic(char simvol, int koll, int grupa,...) { if (simvol == '+') { int sum = 0; int *p = & grupa; for (int i = 0; i < koll; i++) { sum += *p; p++; }
return sum; } if (simvol == '*') { int multiplication = 1; int *p = & grupa; for (int i = 0; i < koll; i++) { multiplication *= *p; p++; } return multiplication; } if (simvol == 's') { int sqt = 1; int sum = 0; int *p = & grupa; for (int i = 0; i < koll; i++) { sum += *p; p++; } sqt = sum / koll; return sqt; } }
// Написать ф-цию, которая в двухмерном массиве вещественных чисел меняет знак элементов // некоторого столбца на противоположный (номер столбца передавать в качестве параметра). // Использовать ф-цию для преобразования матрицы размером 4х5. Выполнить два варианта такой ф-ции: // а) ф-ция, предназначенная для массива с числом столбцов, равным 5; // б) универсальная ф-ция, которую можно использовать при любом числе строк и столбцов.
#include < iostream> using namespace std; void smenaZnaka(double mas[4][5], int stolb) { for (int i = 0; i < 4; i++) { mas[i][stolb] *= -1; } } void universSmenaZnaka(double *mas, int kollStrok, int kollStolb, int stolb) { for (int i = 0; i < kollStrok; i++) { mas = mas + stolb; *mas *= -1; mas = mas + kollStolb - stolb; } }
void main() { setlocale(LC_ALL, " rus"); double mas[4][5]; for (int i = 0; i < 4; i++) { for (int j = 0; j < 5; j++) { mas[i][j] = rand() % 19 - 9; cout < < mas[i][j] < < " \t"; } cout < < " \n"; } cout < < " \n" < < " \n";
smenaZnaka(mas, 4); for (int i = 0; i < 4; i++) { for (int j = 0; j < 5; j++) { cout < < mas[i][j] < < " \t"; } cout < < " \n"; } cout < < " \n" < < " \n";
universSmenaZnaka(& mas[0][0], 4, 5, 2); for (int i = 0; i < 4; i++) { for (int j = 0; j < 5; j++) { cout < < mas[i][j] < < " \t"; } cout < < " \n"; }
system(" pause"); }
//#5 Описать функцию определения максимального элемента в одномерном массиве. // С помощью этой функции найти максимум в каждой строке двумерного массива и вывести эти максимумы на консоль. //Также с помощью этой функции найти максимальный элемент во всем двумерном массиве.
#include < iostream> #include < conio.h> #include < time.h> using namespace std;
int max(int a[], int n) { int max = a[0]; for (int i = 1; i < n; i++) { if (a[i] > max) { max = a[i]; } } return max; } void part1() { int a[] = { 5, 4, 3 }; int b[] = { -3, 0, 3, 6 }; cout < < max(a, 3) < < " \n"; cout < < max(b, 4) < < " \n"; _getch(); } void main() { part1();
setlocale(LC_ALL, " rus"); const int N = 3; const int M = 4; int a[N][M] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, {6, 5, 4, 3} }; int maxElem[N]; for (int i = 0; i < N; i++) { int b[M]; for (int j = 0; j < M; j++) { b[j] = a[i][j]; } int res = max(b, M); cout < < " " < < res; maxElem[i] = res; } cout < < max(maxElem, N);
system(" pause"); } // Одномерный массив из 10 элементов инициализировать случайными числами от -9 до 9. // Вывести исходный массив на консоль. //Поменять местами первый отрицательный элемент и последний положительный. // Преобразованый массив вывести на консоль. // При работе использавать только указатели. Оформить в виде отдельных ф-ций: // 1) инициализация массива; 2) вывод на консоль; 3)поиск первого отрицательного; // 4) последнего положительного 5) обмен местами двух элементов массива.
#include < iostream> using namespace std;
void initMas(int mas[], int n) { for (int i = 0; i < n; i++) { mas[i] = rand() % 19 - 9; } } void printMas(int mas[], int n) { for (int i = 0; i < n; i++){ cout < < mas[i] < < " \t"; } }
int oneMinus(int mas[], int n) { for (int i = 0; i < n; i++) { if (mas[i] < 0) { return i; } } cout < < " Нет отрицательного числа"; exit(0); }
int firstPlus (int mas[], int n) { for (int i = n - 1; i > = 0; i++){ if (mas[i] > 0) { return i; } } cout < < " Нет положительного числа"; exit(0); }
void perestanovka(int mas[], int one, int two) { int temp = mas[one]; mas[one] = mas[two]; mas[two] = temp; }
void main() { setlocale(LC_ALL, " rus"); const int MAS = 10; int a[MAS]; initMas(a, MAS); printMas(a, MAS); int minus = oneMinus(a, MAS); int plus = firstPlus(a, MAS); perestanovka(a, minus, plus); printMas(a, MAS); system(" pause"); }
|