Во-первых, не whill, а while. Во-вторых, цикл с предусловием(while) выполняется только тогда, когда его условие возвращает ложь. Если условие возвращает правду, цикл завершается. Бывает так, что при попытке первой итерации цикла условие уже возвращает правду. В этом случае цикл не будет выполнен ни разу. Цикл с предусловием(repeat), наоборот, выполняется, пока условие возвращает правду и завершается ложью. Стоит заметить, что если цикл с предусловием проверяет своё условие перед итерацией, цикл с постусловием делает это после, а это значит, что последний выполнится хотя бы один раз.
Во-вторых, цикл с предусловием(while) выполняется только тогда, когда его условие возвращает ложь. Если условие возвращает правду, цикл завершается. Бывает так, что при попытке первой итерации цикла условие уже возвращает правду. В этом случае цикл не будет выполнен ни разу.
Цикл с предусловием(repeat), наоборот, выполняется, пока условие возвращает правду и завершается ложью. Стоит заметить, что если цикл с предусловием проверяет своё условие перед итерацией, цикл с постусловием делает это после, а это значит, что последний выполнится хотя бы один раз.
#include <iostream>
using std::cout;
using std::endl;
void move(int*, const int);
void print(const int*, const int);
int main()
{
const int arraySize = 10;
int a[arraySize] = { 4, 7, 3, 9, 2, 1, 8, 6, 5, 10 };
cout << "Array before modify:" << endl;
print(a, arraySize);
move(a, arraySize);
cout << "\nArray after modify:" << endl;
print(a, arraySize);
return 0;
}
void print(const int *a, const int size)
{
for(int i = 0; i < size; i++)
{
cout << a[i] << ' ';
}
cout << endl;
}
void move(int *a, const int size)
{
int smallest = 0;
int largest = 0;
int temp;
for(int i = 1; i < size; i++)
{
if(a[smallest] > a[i])
{
smallest = i;
}
if(a[largest] < a[i])
{
largest = i;
}
}
temp = a[smallest];
a[smallest] = a[largest];
a[largest] = temp;
}