Друзья.
По задумке программа переписывает все отрицательные числа из основного массива a[n] в массив otsev[n].
Потом она должна найти в основном массиве элемент равный этому числу и переписать себя же, только удалив это число.
Принцип удаления был придуман такой- массив заменит это число на число из следующей ячейки и так до конца программы. Потом уменьшится число элементов массива на 1. И где то закралась ошибка. Удаляет не правильно. Замещение происходит не верно.
Подскажите пожалуйста где ошибка, а то уже мозги кипят. Спасибо!
Вот код:
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
using namespace std;
int main() {
int n=5,a[n],num=0,otsev[n],maximum=0,or_maximum,zn_maximum;
for(int j = 0; j<n;>\t"; cin >> a[j];
}
cout << "\n-ok\n\n";
for(int j=0; j<n;>otsev[maximum])
{
maximum = j;
zn_maximum = otsev[j];
}
else
{
zn_maximum = otsev[maximum];
}
}
cout << "\nMinus maximum = " << otsev[maximum];
for(int j=0;j<n;j++)>\t" << a[j] << "\n";
}
getch();
return 0;
}
Другие языки программирования и технологии
Поиск наибольшего отрицательного элемента массива (c++) и его удаление, написал программу, где то косячек =/
> По задумке программа переписывает все отрицательные числа из основного массива a[n] в массив otsev[n].
> Потом она должна найти в основном массиве элемент равный этому числу и переписать себя же, только удалив это число.
> Принцип удаления был придуман такой- массив заменит это число на число из следующей ячейки и так до конца программы. Потом уменьшится число элементов массива на 1.
Бред и поток сознания!
Поиск наибольшего отрицательного элемента массива (c++) и его удаление:
#include <ctime>
#include <cstdlib>
#include <iostream>
using namespace std;
#define MAX 100
int main() {
srand(time(0));
int a[MAX], sz, c, nmc = -1;
cout << "размер массива? ";
cin >> sz;
cout << "исходный массив: \n";
for (c = 0; c < sz; ++c) cout << ' ' << (a[c] = rand() % 21 - 10);
// ищем максимальное отрицательное
for (c = 0; c < sz; ++c) if ( a[c] < 0 && (nmc == -1 || a[c] > a[nmc]) ) nmc = c;
cout << "\nмаксимальное отрицательное число: " << a[nmc];
// "удаляем" найденный элемент
--sz;
for (c = nmc; c < sz; ++c) a[c] = a[c + 1];
cout << "\nпреобразованный массив: \n";
for (c = 0; c < sz; ++c) cout << ' ' << a[c];
}
Вариант: удаление всех элементов равных максимальному отрицательному:
#include <ctime>
#include <cstdlib>
#include <iostream>
using namespace std;
#define MAX 100
int main() {
srand(time(0));
int a[MAX], sz, nsz = 0, c, nmx = 0;
cout << "размер массива? ";
cin >> sz;
cout << "исходный массив: \n";
for (c = 0; c < sz; ++c) cout << ' ' << (a[c] = rand() % 11 - 5);
// ищем отрицательный максимум
for (c = 0; c < sz; ++c) if ( a[c] < 0 && (nmx == 0 || a[c] > nmx) ) nmx = a[c];
cout << "\nмаксимальное отрицательное число: " << nmx;
// "удаляем" все элементы равные максимальному отрицательному
for (c = 0; c < sz; ++c) if (a[c] != nmx) a[nsz++] = a[c];
sz = nsz;
cout << "\nпреобразованный массив: \n";
for (c = 0; c < sz; ++c) cout << ' ' << a[c];
}
> Потом она должна найти в основном массиве элемент равный этому числу и переписать себя же, только удалив это число.
> Принцип удаления был придуман такой- массив заменит это число на число из следующей ячейки и так до конца программы. Потом уменьшится число элементов массива на 1.
Бред и поток сознания!
Поиск наибольшего отрицательного элемента массива (c++) и его удаление:
#include <ctime>
#include <cstdlib>
#include <iostream>
using namespace std;
#define MAX 100
int main() {
srand(time(0));
int a[MAX], sz, c, nmc = -1;
cout << "размер массива? ";
cin >> sz;
cout << "исходный массив: \n";
for (c = 0; c < sz; ++c) cout << ' ' << (a[c] = rand() % 21 - 10);
// ищем максимальное отрицательное
for (c = 0; c < sz; ++c) if ( a[c] < 0 && (nmc == -1 || a[c] > a[nmc]) ) nmc = c;
cout << "\nмаксимальное отрицательное число: " << a[nmc];
// "удаляем" найденный элемент
--sz;
for (c = nmc; c < sz; ++c) a[c] = a[c + 1];
cout << "\nпреобразованный массив: \n";
for (c = 0; c < sz; ++c) cout << ' ' << a[c];
}
Вариант: удаление всех элементов равных максимальному отрицательному:
#include <ctime>
#include <cstdlib>
#include <iostream>
using namespace std;
#define MAX 100
int main() {
srand(time(0));
int a[MAX], sz, nsz = 0, c, nmx = 0;
cout << "размер массива? ";
cin >> sz;
cout << "исходный массив: \n";
for (c = 0; c < sz; ++c) cout << ' ' << (a[c] = rand() % 11 - 5);
// ищем отрицательный максимум
for (c = 0; c < sz; ++c) if ( a[c] < 0 && (nmx == 0 || a[c] > nmx) ) nmx = a[c];
cout << "\nмаксимальное отрицательное число: " << nmx;
// "удаляем" все элементы равные максимальному отрицательному
for (c = 0; c < sz; ++c) if (a[c] != nmx) a[nsz++] = a[c];
sz = nsz;
cout << "\nпреобразованный массив: \n";
for (c = 0; c < sz; ++c) cout << ' ' << a[c];
}
Код выкладывай на pastebin.com, сюда - ссылку.
-----
Переформулируй условие, ничего не понятно.
> программа переписывает все отрицательные числа из основного массива a[n] в массив otsev[n].
ОК
> Потом она должна найти в основном массиве элемент равный этому числу
какому числу? Раньше речь шла о ЧИСЛАХ
> и переписать себя же,
Програма должна переписать себя же? Т. е. создать файл cpp с похожей программой?
>только удалив это число.
Какое? Это число в тексте программы или вводится?
-----
Переформулируй условие, ничего не понятно.
> программа переписывает все отрицательные числа из основного массива a[n] в массив otsev[n].
ОК
> Потом она должна найти в основном массиве элемент равный этому числу
какому числу? Раньше речь шла о ЧИСЛАХ
> и переписать себя же,
Програма должна переписать себя же? Т. е. создать файл cpp с похожей программой?
>только удалив это число.
Какое? Это число в тексте программы или вводится?
Похожие вопросы
- Не пойму как удалить элементы массива (C++).
- Отсортировать отрицательные элементы массива по убыванию, пропуская положительные и нули. Вывести массив до и после сорт
- (плиз решите на С++) Количество отрицательных элементов массива и заменить эти элементы их квадратами. Одномерный масси
- Поменять местами первый и последний отрицательные элементы массива B (18). (Язык Си) (Язык Си)
- Вычислить сумму элементов массива, расположенных между первым и вторым отрицательными элементами - C++
- Напишите программу, которая находит в массиве количество элементов, равных заданному значению X .
- Написать программу работы с одномерным массивом из 15 вещественных элементов для решения задач:
- Помогите с массивами! Найти и вывести на экран сумму нечётных элементов массива и количество отрицательных.
- Составьте программу, отыскивающую наибольший элемент массива A(N) из числа принадлежащим интервалу {min,(min+max\2))
- 1. Написать программу, которая заполняет массив целых чисел размеров 20 элементов значениями роста учащихся (случайные ч