juvaforza
BANNED | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Как-то так. Где выделено - стоит присмотреться. Плюс нулевые указатели или некорректные параметры могут быть переданны в функции, в более сложных программах это проверяется. Два цикла в myfunc1() Вы сами сможете объединить. Код: #include <iostream> #include <new> using namespace std; void myfunc1(int*X, int N, int*XX, int*M);//Ищет максимальный элемент, с подсчетом void myfunc2(int*X, int N, int XX, int*Y);//Исключает при копировании значений максимальный элемент //Дан массив A из N чисел. Исключить из A элементы с максимальным значением. int main() { int N;//Будущая размерность массива А cout << "Input N here:";//Приглашение к вводу cin >> N;//Ввод количества элементов if (N<=0) return 1; int*A=new int[N];//Объявление массива и выделение дин. памяти под него //Ввод элементов массива for(int i=0;i<N;i++) { cout << "Input A[" << i << "] here:"; cin >> A[i]; } //Вывод A[i] for(int i=0;i<N;i++) { cout << A[i] << " "; } cout << "\n"; int*B;//Объявление массива int M;//Будущая размерность массива B int V;//Максимальное значение myfunc1(A,N,&V,&M);//Запуск функции поиска максимального элемента B=new int[M];//Выделение дин. памяти под массив myfunc2(A,N,V,B);//Запуск функции исключения максимального элемента //Вывод B[i] for(int i=0;i<M;i++) { cout << B[i] << " "; } cout << "\n"; cin >> N;//Для того, что бы не закрывался консоль delete[] A; delete[] B; return 0; } void myfunc1(int*X, int N, int*XX, int*M) { //Поиск максимального элемента int max=X[0]; for(int i=0;i<N;i++) { if(max<X[i]) max=X[i]; } //Подсчет кол-ва элементов с макс. значением. int k=0; for(int i=0;i<N;i++) { if(max==X[i]) k++; } *XX=max; *M=N-k;//Новая размерность массива return; } void myfunc2(int*X, int N, int XX, int*Y) { //Заполняем массив значениями, кроме максимальных for(int i=0,j=0;i<N;i++) { if(X[i]!=XX) {Y[j]=X[i];j++;} } return;//Возвращаем новый массив } |
| Всего записей: 2895 | Зарегистр. 26-11-2005 | Отправлено: 12:43 03-11-2012 | Исправлено: juvaforza, 13:15 03-11-2012 |
|