Подскажите что в моем коде не так. Мне нужно удалить из нескольких элементов только три, но моя программа выдает не верный результат.
using namespace::std;
int main()
{
int n, a, b, c;
int x[100], m[100];
cout << " n?.. "; cin >> n; //количество элементов
cout << endl;
for (int k = 0; k < n; k++)
{
cout << "x[" << k << "] = ";
cin >> x[k];
}
for (int i = 0; i < 3; i++)
{
cout << endl << " №?.. "; cin >> m[i]; // номера удаляемых элементов
cout << endl;
if (m[i] > n) m[i] = n;
if (m[i] < 1) m[i] = 1;
--m[i];
--n;
for (int k = 0; k < n; k++)
{
if (k < m[i]) continue;
else x[k] = x[k + 1];
}
for (int k = 0; k < n; k++) cout << x[k] << ' ';
}
getch();
}
Так Вы каждый раз вводите номера в первоначальном массиве. А он же меняется при каждом удалении.
В Вашем случае (и только при вводе последовательно возрастающих индексов удаляемых элементов) нужно после ввода m[i]
вычесть из него i
(т.е. количество уже удаленных).
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Возможно ли это? Вот пример :
Есть сниффер , ловит пакеты записывает заголовочную информацию в файлПрепод требует допустим если udp пакет записывал еще порты , icmp - тип icmp и код...
У меня есть небольшая программа, которая считает слова, я знаю как она работает, но не совсем понимаю как именно устроен механизмКонкретно...