Поменять местами первый и минимальный элементы массива - C (СИ) (70908)
Формулировка задачи:
Заданный массив. Поменять местами его первый и минимальный элементы. Если элементов с минимальным значением несколько, взять последний из них.
Решение задачи: «Поменять местами первый и минимальный элементы массива»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> #define SIZE 11 int main ( void ) { unsigned char numberArray[SIZE], counter, tempCounter = 0, minValue = 0; unsigned char tempVariable = 0; srand( time( NULL )); // заполняет массив значениями for ( counter = 0; counter < SIZE; ++counter ) { if ( counter == 0 ) printf( "%s", "Before: " ); printf( "%3hhu", numberArray[counter] = 1 + rand () % 10 ); } minValue = numberArray[0]; for ( counter = 1; counter < ( SIZE * 2 ) + 1; ++counter ) { // ищет мин элемент if ( numberArray[counter] < minValue && counter < SIZE ) { minValue = numberArray[counter]; tempCounter = counter; } // если мин элементов больше одного - выбирает последний if ( tempCounter > 0 && minValue == numberArray[counter] && counter < SIZE ) tempCounter = counter; // если мин элемент совпадает с первым нет смысла продолжать if ( counter == SIZE && minValue == numberArray[0] ) { puts( "\nImpossible change values" ); break; } // меняет элементы местами if ( counter == SIZE ) { printf( "\n%s", "After: " ); tempVariable = numberArray[0]; numberArray[0] = numberArray[tempCounter]; numberArray[tempCounter] = tempVariable; tempCounter = 0; } // выводит новый порядок на экран if ( counter > SIZE ) printf( "%3hhu", numberArray[tempCounter++] ); } puts( "" ); return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д