Поменять местами последний и максимальный элемент массива - C (СИ)
Формулировка задачи:
Добрый вечер, есть программа она меняет минимальный и максимальный элемент массива.
Нужно еще сделать программку которая меняет местами последний элемент массива и максимальный, то есть
{1,5,3,7,6,4,9,2} - исходной массив
{1,5,3,7,6,4,2,9} - массив после смены.
И если максимальных элементов несколько то взять первый из них.
Листинг программы
- #include "stdafx.h"
- #include <stdio.h>
- #include<conio.h>
- #include <time.h>
- #include <Windows.h>
- int main()
- {
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- int a[100], buf;
- int i, n, max, min, n_max, n_min;
- printf("Введите число n:");
- scanf_s("%d", &n);
- if (n <= 5) {
- printf("Массив должен состоять из 6 и больше чисел.\n");
- scanf_s("%d", &n);
- }
- srand(time(NULL));
- printf("Массив до смены:\n");
- for (i = 0; i<n; i++)
- {
- a[i] = rand() % 10000;
- printf("%d\t", a[i]);
- }
- printf("\n");
- max = a[0];
- min = a[0];
- for (i = 1; i<n; i++)
- {
- if (a[i]>max)
- {
- max = a[i];
- n_max = i;
- }
- if (a[i]<min)
- {
- min = a[i];
- n_min = i;
- }
- }
- buf = a[n_max];
- a[n_max] = a[n_min];
- a[n_min] = buf;
- printf("\nМассив после смены:\n");
- for (i = 0; i < n; i++)
- printf("%d\t", a[i]);
- _getch();
- }
Дописал правильное условие задачи.
Помогите)
ап!!!
Решение задачи: «Поменять местами последний и максимальный элемент массива»
textual
Листинг программы
- #include <stdio.h>
- #include<conio.h>
- #include <time.h>
- #include <Windows.h>
- int main()
- {
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- int a[100], buf;
- int i, n, max, min, n_max, n_min;
- printf("Введите число n:");
- scanf("%d", &n);
- if (n <= 5) {
- printf("Массив должен состоять из 6 и больше чисел.\n");
- scanf("%d", &n);
- }
- srand(time(NULL));
- printf("Массив до смены:\n");
- for (i = 0; i<n; i++)
- {
- a[i] = rand() % 100;
- printf("%d\t", a[i]);
- }
- printf("\n");
- for (i = n-1,max=0; i>=0; i--)
- {
- if (a[i]>max)
- {
- max = a[i];
- n_max = i;
- }
- }
- buf = a[n_max];
- a[n_max] = a[n-1];
- a[n-1] = buf;
- printf("\nМассив после смены:\n");
- for (i = 0; i < n; i++)
- printf("%d\t", a[i]);
- _getch();
- }
Объяснение кода листинга программы
В этом коде:
- #include
, #include , #include , #include - подключают необходимые библиотеки для работы с консолью, временной зоной, случайными числами и окнами. - int main() - функция main(), с которой начинается любая программа на C.
- SetConsoleCP(1251);, SetConsoleOutputCP(1251); - устанавливают кодировку консоли как 1251, чтобы правильно отображать кириллицу.
- int a[100], buf; - объявляют массив a размером 100 и переменную buf для временного хранения максимального элемента.
- int i, n, max, min, n_max, n_min; - объявляют переменные для цикла, для хранения максимального и минимального индексов и для временного хранения максимального и минимального элементов.
- printf(
Введите число n:
);, scanf(%d
, &n); - запрашивают у пользователя число n и сохраняют его в переменную n. - if (n <= 5) {, printf(
Массив должен состоять из 6 и больше чисел.\n
);, scanf(%d
, &n); - если n меньше или равно 5, выводят сообщение об ошибке и запрашивают новое значение n. - srand(time(NULL)); - инициализируют генератор случайных чисел текущим временем.
- printf(
Массив до смены:\n
);, for (i = 0; i < n; i++), a[i] = rand() % 100;, printf(%d\t
, a[i]); - выводят сообщениеМассив до смены
, затем заполняют массив случайными числами от 0 до 99 и выводят каждое число на новой строке. - for (i = n-1,max=0; i>=0; i--) - цикл для поиска максимального элемента, начиная с последнего элемента массива.
- if (a[i]>max) - если текущий элемент больше максимального значения, обновляют максимальное значение и запоминают индекс.
- buf = a[n_max];, a[n_max] = a[n-1];, a[n-1] = buf; - меняют местами максимальный и последний элементы массива.
- printf(
\nМассив после смены:\n
);, for (i = 0; i < n; i++), printf(%d\t
, a[i]); - выводят сообщениеМассив после смены
, затем выводят все элементы массива. - _getch(); - используют функцию _getch() для приостановки выполнения программы и ожидания нажатия клавиши.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д