Меняем местами первый и второй отрицательный элемент

Суть задания : поменять местами первый и второй отрицательный элемент. П.С я их уже нашел и вывел себе чтобы видеть их,но как их теперь поменять местами. К примеру я ввел 1 2 3 4 5 -6 7 8 9 -10, как сделать так,чтобы -10 встало на место -6 а -6 на место -10.

Вот начало моего кода

using namespace std;
void mass(int v[]);
void main()
{
    setlocale(LC_ALL,"Russian");
    int v[10];
    cout<<"Введите элементы массива:"<<endl;
    for(int i=0; i<10; i++)
        cin>>v[i];
    mass(v);
    system("pause");
}
void mass(int v[])
{
    int first,second;
    first,second=0;
    for(int i=0; i<10; i++)
{
   if(v[i]<0)
   {
      first=v[i]; 
      for(;i<10;i++)
         if(v[i]<0)
         {
            second=v[i]; 
         }
         cout<<"Первый отрицательный элемент:"<<first<<endl;
         cout<<"Второй отрицательный элемент:"<<second<<endl;

Ответы (1 шт):

Автор решения: Mikhailo

Можно так:

void mass(int v[]) {
    int first, second;
    first, second = 0;
    int first_idx, second_idx = 0;

    for (int i = 0; i < 10; i++) {
        if (v[i] < 0) {
            first = v[first_idx = i];

            for (; i < 10; i++)
                if (v[i] < 0) {
                    second = v[second_idx];
                    cout << "Первый отрицательный элемент:" << first << endl;
                    cout << "Второй отрицательный элемент:" << second << endl;
                    v[second_idx] = first;
                    v[first_idx] = second;
                    break;
                    }

            break;
            }
        }
    }
→ Ссылка