Решение модуля 1.7 Введение в программирование C++

Модуль 1.7 (Цикл for и массивы) Данный модуль научит циклу for, а также работать с массивами чисел, которые позволяют хранить в себе последовательность.

Ниже представлены примеры задач с решением на C++ на тему Цикл for и массивы.

Выведите все элементы массива с четными индексами (то есть A[0]A[2]A[4], …).

#include <iostream>
#include <cmath>
#include <vector>
using namespace std;

int main() {
	int n;
	cin >> n;
	vector <int> a(n);
	//считывание
	for (int i = 0; i < n; i++) {
		cin >> a[i];
	}
	//обработка и вывод
	for (int i = 0; i < n; i++) {
		if (i % 2 == 0) {
			cout << a[i] << " ";
		}
	}
}

Выведите все четные элементы массива.

#include <iostream>
#include <cmath>
#include <vector>
using namespace std;

int main() {
	int n;
	cin >> n;
	vector <int> a(n);
	//считывание
	for (int i = 0; i < n; i++) {
		cin >> a[i];
	}
	//обработка и вывод
	for (int i = 0; i < n; i++) {
		if (a[i] % 2 == 0) {
			cout << a[i] << " ";
		}
	}
}

Найдите количество положительных элементов в данном массиве.

#include <iostream>
#include <cmath>
#include <vector>
using namespace std;

int main() {
	int n,k;
	cin >> n;
	k = 0;
	vector <int> a(n);
	//считывание
	for (int i = 0; i < n; i++) {
		cin >> a[i];
	}
	//обработка и вывод
	for (int i = 0; i < n; i++) {
		if (a[i] > 0) {
			k++;
		}
	}
	cout << k;
}

Дан массив чисел. Выведите все элементы массива, которые больше предыдущего элемента .

#include <iostream>
#include <cmath>
#include <vector>
using namespace std;

int main() {
	int n;
	cin >> n;
	vector <int> a(n);
	//считывание
	for (int i = 0; i < n; i++) {
		cin >> a[i];
	}
	//обработка и вывод
	for (int i = 1; i < n; i++) {
		if (a[i] > a[i-1]) {
			cout << a[i] << ' ';
		}
	}
}

Дан массив целых чисел. Если в нем есть два соседних элемента одного знака, выведите эти числа. Если соседних элементов одного знака нет — не выводите ничего. Если таких пар соседей несколько — выведите первую пару.

#include <iostream>
#include <vector>
using namespace std;

int main() {
    int n;
    cin >> n;
    vector <int> a(n);
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    for (int i = 1; i < n; i++) {
        if ((a[i]>0) && (a[i-1]>0) || (a[i]<0) && (a[i-1]<0)) {
            if (a[i] > a[i-1]) {
                cout << a[i-1] << " " << a[i];
            } else {
                cout << a[i] << " " << a[i-1];
            }
        break;
        }
    }
    return 0;
}

Выведите значение наименьшего из всех положительных элементов в массиве. Известно, что в массиве есть хотя бы один положительный элемент.

#include <iostream>
#include <cmath>
#include <vector>
using namespace std;

int main() {
	int n, min;
	min = 1000;
	cin >> n;
	vector <int> a(n);
	//считывание
	for (int i = 0; i < n; i++) {
		cin >> a[i];
	}
	//обработка и вывод
	for (int i = 1; i < n; i++) {
		if (min > a[i] and a[i] > 0) {
			min = a[i];
		}
	}
	cout << min;
}

Выведите значение наименьшего нечетного элемента списка, а если в списке нет нечетных элементов — выведите число 0.

#include <iostream>
#include <vector>

using namespace std;

int main()
{
  int min = 0;
  int n, vb = 0;
  cin >> n;
  vector <int> a;
  vector <int> b;
  //считывание элементов
  for (int i = 0; i < n; i++) {
    int temp;
    cin >> temp;
    a.push_back(temp);
  }
  //создание нечетного вектора
  for (int i = 0; i < n; i++) {
    if (a[i] != 0 && a[i] % 2 != 0) {
      vb = a[i];
      b.push_back(vb);
    }
  }
  //если все четное, то 0
  if (vb == 0) {
    cout << 0;
    return 0;
  }
  //нахождение минимального из нечетного

  min = b[0];
  for (int i = 0; i < b.size(); i++) {
    if (b[i] < min) {
      min = b[i];
    }
  }
  cout << min;
  return 0;
}

Дан список, упорядоченный по неубыванию элементов в нем. Определите, сколько в нем различных элементов.

#include <iostream>
#include <vector>
using namespace std;
int main() {
  int N, a;
    bool flag;
    vector <int> b;
    cin >> N;
    for(int i=0; i<N; i++)
    {
        cin >> a;
        flag = false;
        for(int i1=0; i1 < b.size(); i1++)
        {
            if(a==b[i1]) flag = true;
        }
        if(flag == false) b.push_back(a);
    }
    cout << b.size();
  return 0;
}

Переставьте соседние элементы массива (A[0] c A[1], A[2] c A[3] и т.д.). Если элементов нечетное число, то последний элемент остается на своем месте.

#include <iostream>
#include <cmath>
#include <vector>
using namespace std;

int main() {
	int n, k, tmp;
	k = 0;
	cin >> n;
	vector <int> a(n);
	//считывание
	for (int i = 0; i < n; i++) {
		cin >> a[i];
	}
	//обработка и вывод
	for (int i = 1; i < n; i += 2) {
		cout << a[i] << ' ' << a[i-1] << ' ';
	}
	if (n % 2 == 1) {
		cout << a[n - 1];
	}
}

Циклически сдвиньте элементы списка вправо (A[0] переходит на место A[1], A[1] на место A[2], …, последний элемент переходит на место A[0]).

#include <iostream>
using namespace std;
int main() {
    int n;
    cin >> n;
    int a[1000];
    for(int i=0;i<n;i++)
        cin>>a[i];
    cout << a[n-1]<<" ";
    for(int i=0;i<n-1;i++)
        cout << a[i]<<" ";
    return 0;
} 

Дан массив чисел. Посчитайте, сколько в нем пар элементов, равных друг другу. Считается, что любые два элемента, равные друг другу образуют одну пару, которую необходимо посчитать.

#include <iostream>
#include <cmath>
#include <vector>
using namespace std;

int main() {
	int n, k;
	k = 0;
	cin >> n;
	vector <int> a(n);
	//считывание
	for (int i = 0; i < n; i++) {
		cin >> a[i];
	}
	//обработка и вывод
	for (int i = 0; i < n; i ++) {
		for (int j = 0;j < n; j++) {
			if (a[i] == a[j] and i > j) {
				k++;
			}
		}
	}
	cout << k;
}

Дан массив. Выведите те его элементы, которые встречаются в массиве только один раз. Элементы нужно выводить в том порядке, в котором они встречаются в списке.

using namespace std;
#include <iostream>
#include <iomanip>
#include <cmath>
#include <vector>

int main() {
  int n, r=0;
  cin >> n;
  vector <int> a;
  //schit
  for (int i = 0; i < n; i ++ ){
        int temp;
        cin >> temp;
          a.push_back(temp);
  }
  // обработка
  for (int i = 0; i < n; i += 1){
    r = 0;
    for (int i2 = 0; i2 < n; i2 += 1)
    {

      if (a[i] == a[i2]) r++;
    }
    if (r == 1)
      cout << a[i] << " ";
  }    
  return 0;
}

Известно, что на доске 8×8 можно расставить 8 ферзей так, чтобы они не били друг друга. Вам дана расстановка 8 ферзей на доске, определите, есть ли среди них пара бьющих друг друга.

#include <iostream>
#include <cmath>
#include <iomanip>
#include <vector>
using namespace std;
int main()
{
  int sum=0;
vector <int> a(16);
for (int i = 0; i < 16; i++) cin >> a[i];
for (int j = 0; j < 16; j+=2)
{
  for(int k=j+2; k<16;k+=2)
  {
    if((a[j]==a[k]) || (a[j+1]==a[k+1]) || (a[j]-a[k]==a[j+1]-a[k+1]) || (a[j]-a[k]==-a[j+1]+a[k+1]))
      {
      sum++;
        }
  }
}
if(sum>0)cout<<"YES";
else cout<<"NO";
system("pause");
  return 0;
}

N кеглей выставили в один ряд, занумеровав их слева направо числами от 1 до N. Затем по этому ряду бросили K шаров, при этом i-й шар сбил все кегли с номерами от li до ri включительно. Определите, какие кегли остались стоять на месте.

#include <iostream>
#include <cmath>
#include <vector>
using namespace std;

int main()
{
  int n, k;
  cin >> n >> k;
  vector <string> xe(n);
  for (int i = 0; i < n; i++) {
    xe[i] = "I";
  }
  vector <int> x(k);
  vector <int> y(k);
  for (int j = 0; j < k; j++) {
    cin >> x[j];
    cin >> y[j];
  }
  for (int i = 0; i < k; i++) {
    for (int j= x[i] - 1; j <= y[i] - 1; j++)
      xe[j] = ".";
  }
  for (int i = 0; i < n; i++) {
    cout << xe[i];
  }
  return 0;
}

Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы

Понравилась статья? Поделиться с друзьями:
Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x