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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.08.2009, 19:12   #1
Syltan
Заблокирован
 
Регистрация: 27.08.2009
Сообщений: 569
По умолчанию Неограниченное количество значений

Задали вот такую задачку , до сих пор не могу решить. Помогите.
Цитата:
1) Программа должна позволять ввести неограниченное количество значений и сохранить их в масив, размещённый в свободном хранилище.
Программа должны вывести введённые значения, по пять в строке,
после чего вычислить и показать их среднюю величину. начальный размер
масива должен состовлять 5 элементов. При необходимости, программа должна создавать
масив с пятью добавочными элементами и копировать содержимое
старого масива в новый..
2)Сделать тоже самое что в первом,только с использованием new...delete.
Вот,что получилось, какой-то бред,не знаю как переделать,она ещё не компилится..
Код:
#include <iostream>
using namespace std;

int main()
{	
int z = 0, k = 0;

int mas[z];
	cout<<"Vvedite kolichestvo znacheniy -> ";
	cin>>z;
for(int i = 1; i<=z; i++)
{
k++;
cout<<i/k;
}
cin.get();
}

Последний раз редактировалось Sazary; 27.08.2009 в 20:16.
Syltan вне форума Ответить с цитированием
Старый 27.08.2009, 19:39   #2
lennon
Заблокирован
 
Регистрация: 18.11.2007
Сообщений: 254
По умолчанию

Код:
#include <iostream>
using namespace std;

int main()
{	
int z = 0, k = 0;

	cout<<"Vvedite kolichestvo znacheniy -> ";
	cin>>z;
int * mas = (int*)calloc(z,sizeof(int));
for(int i = 1; i<=z; i++)
{
k++;
cout<<i/k;
}
cin.get();
}
lennon вне форума Ответить с цитированием
Старый 27.08.2009, 19:43   #3
Syltan
Заблокирован
 
Регистрация: 27.08.2009
Сообщений: 569
По умолчанию

Программа должна соответствовать условию, немного не так описан код. Код должен быть написан на С++, а не на С.

Последний раз редактировалось Syltan; 27.08.2009 в 19:45.
Syltan вне форума Ответить с цитированием
Старый 27.08.2009, 20:22   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Если я правильно понял задание, то как-то так:
Код:
...
int main()
{
  int *a = new int[5];
  int *b;
  int new_item;
  int i = 0;
  int size = 5; // Размер массива
  for(;;)
  {
    cin >> new_item;
    // Если ввели что-то неправильное, то прекращаем ввод
    if (cin.fail())
      break;
    if (i >= size) // Новый элемент не умещается в массив
    {
      size += 5;
      b = new int[size];
      memcpy(b,a, size*sizeof(int)); // Копируем значения из массива а в массив b
      delete[] a; // Удаляем массив a
      a = b; // в а прописываем указатель на массив b
    }
    a[i] = new_value; // Записываем новое значение в массив
    ++i;
  }
  // Тут уже в массив a записано i чисел
  // а памяти выделено под size элементов
  // size кратно пяти всегда
  // Среднее уже самостоятельно найдете надеюсь

  // Ну и в конце не забываем
  // освобождать память из под массива
  delete[] a;
}
ЗЫ. За возможные ошибки извиняюсь заранее, т.к. писал здесь и мог ошибиться где-то
pu4koff вне форума Ответить с цитированием
Старый 27.08.2009, 20:30   #5
lennon
Заблокирован
 
Регистрация: 18.11.2007
Сообщений: 254
По умолчанию

Цитата:
Сообщение от Syltan Посмотреть сообщение
Программа должна соответствовать условию, немного не так описан код. Код должен быть написан на С++, а не на С.
а как ты определил что это не С++?
держи по другому

я не читал условие, это долго
Код:
#include <iostream>
using namespace std;

int main()
{	
int z = 0, k = 0;

	cout<<"Vvedite kolichestvo znacheniy -> ";
	cin>>z;
int * mas = new mass[z];
for(int i = 1; i<=z; i++)
{
k++;
cout<<i/k;
}
cin.get();
}

Последний раз редактировалось MaTBeu; 27.08.2009 в 23:32.
lennon вне форума Ответить с цитированием
Старый 27.08.2009, 20:45   #6
Syltan
Заблокирован
 
Регистрация: 27.08.2009
Сообщений: 569
По умолчанию

Pu4koff не скажите,тут что-то останавливается на этой строке, а дальше не идёт,выдаёт,что какой-то неизвестный идентификатор вроде.
Код:
a[i] = new_value; // Записываем новое значение в массив
Если заменить на
Код:
 a[i] = new_item;
Программа компилится, но просто когда запускаешь, пустой экран, и ты бесконечно просто вводишь что-нибудь и всё.

Последний раз редактировалось Syltan; 27.08.2009 в 20:51.
Syltan вне форума Ответить с цитированием
Старый 27.08.2009, 20:53   #7
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от Syltan Посмотреть сообщение
Pu4koff не скажите,тут что-то останавливается на этой строке, а дальше не идёт,выдаёт,что какой-то неизвестный идентификатор вроде.
Код:
a[i] = new_value; // Записываем новое значение в массив
Если заменить на
Код:
 a[i] = new_item;
Программа компилится, но просто когда запускаешь, пустой экран, и ты бесконечно просто вводишь что-нибудь и всё.
Ну да. Ошибся я там с new_value.
Введите какую-нибудь букву, а не число, ввод должен будет прекратиться.
pu4koff вне форума Ответить с цитированием
Старый 27.08.2009, 21:01   #8
Syltan
Заблокирован
 
Регистрация: 27.08.2009
Сообщений: 569
По умолчанию

Когда вводишь буквы, нажимаешь Энтер, программа выключается. Что-то вроде немного не то.

Код:
Программа должна вывести введённые значения, по пять в строке, 
после чего вычислить и показать их среднюю величину.
Syltan вне форума Ответить с цитированием
Старый 27.08.2009, 21:04   #9
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Я в комментарии написал, что среднее сами найдете, ну и вывод на экран не проблематично сделать, а мне лениво этими мелочами заниматься.
ЗЫ. В моём понимании слово "помогите" имеет иной смысл, нежели "сделайте за меня моё задание".
pu4koff вне форума Ответить с цитированием
Старый 27.08.2009, 21:48   #10
Syltan
Заблокирован
 
Регистрация: 27.08.2009
Сообщений: 569
По умолчанию

Пробую в конце, перед delete, вывести результат так:
Код:
  cout<<a[i];
Но не идёт. Среднее не получается как-то найти, так как не знаю в каком месте вашего кода вставлять и как находить. Знаю что среднее арифм. находится сумой всех чисел и делением на их количество, но в коде не знаю как это сделать в этом коде.
Syltan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Количество строк Яр|/||< (^_^) Общие вопросы Delphi 2 31.07.2009 07:32
Количество знаков Flangini Microsoft Office Excel 9 02.07.2009 15:22
количество цифр и количество символов до первой гласной буквы 111111 Общие вопросы C/C++ 2 22.12.2008 12:15
Частота и количество valko12 Microsoft Office Excel 14 21.05.2008 11:41