Я иду вместе с видеоуроком онлайн C ++. В какой -то момент я попытался написать код для проблемы, описанной в этом заголовке. Позже инструктор показывает его подход, и я не мог решить, какой код лучше, поскольку оба дают одинаковый результат.#include
using namespace std;
// Array construction
struct Array {
int A[10];
int size;
int length;
};
void Swap(int *des, int *source) {
int temp = *des;
*des = *source;
*source = temp;
}
реализация инструктора:
void Rearrange(Array* arr)
{
int i = 0;
int j = arr->length - 1;
while (i < j) {
while (arr->A < 0)
i++;
while (arr->A >= 0)
j--;
if (i < j)
Swap(&arr->A, &arr->A[j]);
}
}
моя реализация:
void ArrangeNegativeOnLeft(Array *arr) {
int i = 0;
int j = arr->length - 1;
while (i < j) {
if (arr->A < 0)
i++;
if (arr->A[j] >= 0)
j--;
if (i < j) {
Swap(&arr->A, &arr->A[j]);
}
}
}
main
int main(){
Array r = { {2,-15, 3,-10,5,6,-44, 55}, 10, 8 };
//Rearrange(&r);
ArrangeNegativeOnLeft(&r);
// Display
cout
Подробнее здесь: https://stackoverflow.com/questions/795 ... -in-an-arr
Переставить отрицательные значения влево и положительные значения справа в массиве ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
TextField, который принимает отрицательные и положительные числа - JavaFx
Anonymous » » в форуме JAVA - 0 Ответы
- 56 Просмотры
-
Последнее сообщение Anonymous
-