Меняем местами первый и второй отрицательный элемент
Суть задания : поменять местами первый и второй отрицательный элемент. П.С я их уже нашел и вывел себе чтобы видеть их,но как их теперь поменять местами. К примеру я ввел 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;
}
}
}