Поменять местами первый и минимальный элементы массива - 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;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.333 из 5
Похожие ответы