Поменять местами максимальный и последний отрицательный элементы массива А (40) - C (СИ)
Формулировка задачи:
1. Поменять местами максимальный и последний отрицательный элементы массива А (40).
Решение задачи: «Поменять местами максимальный и последний отрицательный элементы массива А (40)»
textual
Листинг программы
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #define N 40
- int max_elem_idx(int *arr, int sz);
- void input_array (int *A, int A_size);
- void print_array (int *A, int A_size);
- int main ()
- {
- int i;
- int A[N];
- srand(time(0));
- input_array(A, N);
- puts("\nbefore");
- print_array(A, N);
- for(i=N-1; i!=0;--i)
- if(A[i]<0){
- int tmp=A[i];
- A[i]=A[max_elem_idx(A, N)];
- A[max_elem_idx(A, N)]=tmp;
- break;
- }
- puts("\nafter:");
- print_array(A, N);
- return 0;
- }
- int max_elem_idx(int *arr, int sz){
- int i=0;
- int idx=i;
- for(i=1; i<sz;++i){
- if (arr[idx]<arr[i])
- idx=i;
- }
- return idx;
- }
- void input_array (int *A, int A_size)
- {
- int i;
- int a=-100;
- int b=100;
- for(i=0; i<A_size; i++)
- {
- A[i]=a+rand()%(b-a+1);
- }
- }
- void print_array(int *A, int A_size)
- {
- for(int i=0; i<A_size; i++)
- {
- printf("%4d", A[i]);
- //printf("\n");
- }
- puts("");
- }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с I/O и обеспечения рандомизации инициализации массива
- Определяем размер массива N
- Объявляем функцию max_elem_idx, которая находит индекс максимального элемента в массиве
- Объявляем функцию input_array, которая заполняет массив случайными числами
- Объявляем функцию print_array, которая выводит массив на экран
- В функции main генерируем случайные значения для массива, выводим его на экран
- Меняем местами максимальный и последний отрицательный элементы массива
- Выводим измененный массив на экран
- Возвращаем 0, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д