Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2012, 15:17   #1
BABBBB
 
Регистрация: 09.12.2012
Сообщений: 3
По умолчанию Одномерный массив

Помогите с программой:
Сформировать одномерный массив целых чисел, используя датчик случайных чисел.
Поменять местами минимальный и максимальный элементы массива.
Удалить из массива все элементы, превышающие его среднее значение более, чем на 10%.
BABBBB вне форума Ответить с цитированием
Старый 09.12.2012, 17:13   #2
Romantikkk
Новичок
Джуниор
 
Регистрация: 09.12.2012
Сообщений: 2
По умолчанию

Для датчика случайных чисел надо использовать random, а для того, чтобы местами поменять значение, надо сначала найти самое большое и самое меньшее, а тогда заменить их номера(те которые стоят в [...] типа arr[5] и arr[2])... а с удалением надо поигратся...
Romantikkk вне форума Ответить с цитированием
Старый 09.12.2012, 20:21   #3
BABBBB
 
Регистрация: 09.12.2012
Сообщений: 3
По умолчанию

Хорошо, а если поменять 2 последние строчки условия на новое:
....
Удалить из массива все элементы совпадающие с его минимальным значением.
Добавить в начало массива 3 элемента с значением равным среднему арифметиче-скому массива.
Распечатать полученный массив.
BABBBB вне форума Ответить с цитированием
Старый 10.12.2012, 10:49   #4
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

1)найти минимальное заодно и посчитать среднее арифметическое
2) в цикле искать все = минимальному --удалять
3) вставить в начало 3 элемента = среднему арифметиче-скому массива
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 11.12.2012, 22:02   #5
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
Подмигивание

Для решения подойдёт я думаю зарание ограниченный массив.
Код:
#include <iostream.h>
#include <stdlib.h>

// класс ограниченного массива
template<class AType>
class mylist
{
AType *arr;
unsigned int length;
public:
mylist(unsigned int size);
~mylist(void) { delete[] arr; }
AType& operator[](unsigned int index);
};

template<class AType>
mylist<AType>::mylist(unsigned int size)
{
register unsigned int i;
length = size;
if(length)
{
arr = new AType[length];
if(!arr)
{
cout << "Out of memory";
exit(1);
}
}
}

template<class AType>
AType& mylist<AType>::operator[](unsigned int index)
{
if(index >= length)
{
cout << "Range error";
exit(1);
}
return arr[index];
}
Как пользоваться??
Код:
mylist<int> intarr(40);
intarr[30] = 70;
cout << intarr[30];
осталось внести пару функций для решения твоей проблемы. занимайся.

///--------

Есть одна проблема : удаление... проще хранить указатели их можно преровнять в NULL или реализовать список с двойными связями.. там проблем меньше и работает быстрее
Если помог, тут весы есть , Вам не сложно, а мне приятно.

Последний раз редактировалось Perchik71; 11.12.2012 в 22:05. Причина: проблем удаления
Perchik71 вне форума Ответить с цитированием
Старый 11.12.2012, 22:08   #6
Perchik71
С++, Delphi
Форумчанин
 
Аватар для Perchik71
 
Регистрация: 24.11.2012
Сообщений: 495
По умолчанию

Найти макс значение

Код:
int t = arr[0];
for(int i = 1/*0*/; i < "длина массива"; i++)
{
if(arr[i] > t) t = arr[i];
}
// на выходе самое большое.... и оно в t :)
Если помог, тут весы есть , Вам не сложно, а мне приятно.

Последний раз редактировалось Perchik71; 11.12.2012 в 22:11. Причина: 0 элемент.. в принципе не нужно проверять
Perchik71 вне форума Ответить с цитированием
Старый 19.12.2012, 14:22   #7
BABBBB
 
Регистрация: 09.12.2012
Сообщений: 3
По умолчанию

По данному условию:
Сформировать одномерный массив целых чисел, используя датчик случайных чисел.
Удалить из массива все элементы совпадающие с его минимальным значением.
Добавить в начало массива 3 элемента с значением равным среднему арифметиче-скому массива.
есть код который вроде удаляет, находит среднее арифметическое, но как добавить 3 элемента в начало массива посмотрите и добейте до ума пожалуйста.
Код:
#include "stdafx.h"
#include <clocale>
#include <ctime>
#include <cstdlib>
#include <cmath>
#include <iostream>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale (LC_ALL,"Russian");
 
    const int N = 10;
    int massiv[N];
 
    int srar = 0;
    srand(time(NULL));
 
    //Заполняем массив
    for (int i = 0;i<N;i++)
    {
        massiv[i] = 1 + rand() % 10;
        printf ("%d ",massiv[i]);
    }
 
    //Удаляем минимальный элемент в массиве
    int min = massiv[0];
    for (int i = 0;i<N;i++)
    {
        if (min>massiv[i])
            min = massiv[i];
    }
            for (int i=0;i<N;i++)
    {
        if(massiv[i]==min)
        {
            for(int j=i+1;j<N;j++)
            {
                massiv[j-1]=massiv[j];
                
            }
            
      
        cout<<endl;
        for(i=0;i<N;i++)
    {
        cout <<massiv[i]<<" ";
    }
    cout << "\nmin="<<min<<endl;
 
    //Ищем среднее арифметическое
    int sum = 0;
      for (int i = 0;i<N;i++)
      {
            sum +=massiv[i];
      }
 
      srar = sum/N;
 
      /*for (int i = 0;i<N;++i)
      {
             if (massiv[i] == srar)
             {
                for (int c=N, i = 0;i>3;i++)
                {
                     massiv[c] = massiv [i];
                     c++;
                }}
             }
      cout<<massiv[c];*/
      cout<<"Среднее арифметическое: "<<srar<<"\n";
    system("pause");
    return 0;
        }}}
BABBBB вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив и Двумерный массив eugene1437 Общие вопросы C/C++ 15 25.05.2011 19:17
Одномерный массив , двухмерный массив Woxx Паскаль, Turbo Pascal, PascalABC.NET 0 10.09.2010 09:28
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. Marishkaa Помощь студентам 2 12.01.2010 16:54
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40
[C#] Одномерный массив Doublefaced Помощь студентам 6 18.06.2009 19:00