Форум программистов, компьютерный форум CyberForum.ru

Помогите с курсовой!!! - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
PavelA
Сообщений: n/a
22.01.2010, 15:57     Помогите с курсовой!!! #1
Помогите сделать следующее задание: нам дан массив размера N=13.Надо найти ближайшее целое в массиве и его номер,которое больше серднего африметического всех элементов.

Заранее большое спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2010, 15:57     Помогите с курсовой!!!
Посмотрите здесь:

Помогите с курсовой на тему! C++
помогите с курсовой C++
Сдача курсовой C++
с задания на курсовой C++
C++ Курсовой проэкт на С++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
palva
 Аватар для palva
2373 / 1595 / 190
Регистрация: 08.06.2007
Сообщений: 6,364
Записей в блоге: 4
23.01.2010, 23:58     Помогите с курсовой!!! #2
А че, нормальная курсовая. Мы так кудряво не жили.
Код
#include <iostream.h>

int main() {
  int const N = 13;
  int mass[N] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12};
  int s = 0;
  double m;
  int i;

  for(i = 0; i < N; i++) {
    s += mass[i];
  }
  m = (double)(s) / N;
  for(i = 0; i < N; i++) {
    if(mass[i] > m) {
      cout << 'mass[' << i << '] = ' << mass[i] << '
' << m;
      break;
    }
  }
  return 0;
}
belix
Сообщений: n/a
24.01.2010, 12:24     Помогите с курсовой!!! #3
Ага, тока в массиве все целые, а надо вроде, чтоб double были и проверять потом - целое или не целое
PavelA
Сообщений: n/a
24.01.2010, 18:39     Помогите с курсовой!!! #4
Эээ, нет - те так все здесь просто. Palva: ваша программа будет работать только тогда, когда в массиве все числа будут идти по возрастанию,а это всего лишь частный случай.
Вот например (я чуть изменил кож программы):
Код
#include <iostream.h>
#include <conio.h>
#include <math.h>

int main() {
  int const N = 12;
  double mass[N];
  int s = 0;
  double m;
  int i;

  for (i=0;i<N;i++)
  {
   cout<<'vvedite element mass['<<i<<']: ';
   cin>>mass[i];
  }

  for(i = 0; i < N; i++) {
    s += mass[i];
  }
  m = (double)(s) / N;
  for(i = 0; i < N; i++) {
    if((mass[i] > m)&&(fmod(mass[i],2)==0)) {
      cout << 'mass[' << i << '] = ' << mass[i] << '
Srednee arifmeticheskoe = ' << m;
      break;
    }
  }
  getch();
  return 0;
}
Выдает:
vvedite element mass[0]: -55.5
vvedite element mass[1]: 100
vvedite element mass[2]: 2.5
vvedite element mass[3]: 5
vvedite element mass[4]: 50
vvedite element mass[5]: 056
vvedite element mass[6]: -0.99
vvedite element mass[7]: 55
vvedite element mass[8]: 55.33333
vvedite element mass[9]: 5
vvedite element mass[10]: 6
vvedite element mass[11]: 4
mass[1] = 100
Srednee arifmeticheskoe = 23.5

Но это ж не верно. Помогите, пожалуйста, исправить программу.

Спасибо.
palva
 Аватар для palva
2373 / 1595 / 190
Регистрация: 08.06.2007
Сообщений: 6,364
Записей в блоге: 4
24.01.2010, 22:05     Помогите с курсовой!!! #5
Переменную s нужно объявить как double. Это касательно вычисления среднего арифметического.

Но теперь мне непонятно, что вы хотите найти. Вы сделали массив double и вставили условие fmod(mass[i],2)==0 и фраза 'найти ближайшее целое в массиве и его номер,которое больше...' стала мне непонятна. Если массив double, то целых значений в нем нет.
BerR
0 / 0 / 0
Регистрация: 25.01.2010
Сообщений: 3
25.01.2010, 17:19     Помогите с курсовой!!! #6
Скорее всего смысл задания, которое сформулировал kibizoid можно трактовать так: задан массив из тринадцати элементов, необходимо найти среднеарифметическое этих элементов, после чего округлить это среднеарифметическое в большую сторону и найти результат округления в массиве, если таковое существует.
PavelA
Сообщений: n/a
25.01.2010, 17:42     Помогите с курсовой!!! #7
Да, я полнотью согласен с трактовкой задания BerR'a, но с одним лишь дополнением: в массиве находяться как целые,так и дробные числа.
2palva:повторюсь,но: Ваш алгоритм программы будет работать тогда, и лишь только тогда, в массиве все числа будут идти по возрастанию,а это всего лишь частный случай.

Спасибо еще раз за помощь.
palva
 Аватар для palva
2373 / 1595 / 190
Регистрация: 08.06.2007
Сообщений: 6,364
Записей в блоге: 4
25.01.2010, 19:12     Помогите с курсовой!!! #8
Если бы я понял, что вам нужно, то написал бы другую программу.
PavelA
Сообщений: n/a
25.01.2010, 19:27     Помогите с курсовой!!! #9
Попробую объяснить еще раз: нам задан массив из тринадцати элементов (причем числа в нем,как целые,так и дробные), необходимо найти среднееарифметическое этих элементов, после чего округлить это среднееарифметическое ( в большуюю сторону) и найти результат округления в массиве, если таковое существует.

Сейчас, все детали задания ясны?
palva
 Аватар для palva
2373 / 1595 / 190
Регистрация: 08.06.2007
Сообщений: 6,364
Записей в блоге: 4
25.01.2010, 20:42     Помогите с курсовой!!! #10
Элементарно, Ватсон!
Код
#include <iostream.h>
#include <math.h>

int main() {
  int const N = 13;
  double mass[N] = {0.0, 1.1, 0.2, 0.3, 5.4, 2.5, 4.0, 7.1, 1.8, 2.9, 12.1, 0.11, 3.12};
  double s = 0;
  int i;

  for(i = 0; i < N; i++) {
    s += mass[i];
  }
  s = ceil(s / N);
  for(i = 0; i < N; i++) {
    if(mass[i] == s) {
      cout << 'mass[' << i << '] = ' << mass[i] << '
';
      break;
    }
  }
  return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2010, 23:35     Помогите с курсовой!!!
Еще ссылки по теме:

помогите пожалуйста решить задачу для курсовой. C++
Помогите с написанием программы по курсовой работе C++
Идея к курсовой C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
PavelA
Сообщений: n/a
25.01.2010, 23:35     Помогите с курсовой!!! #11
palva:БОЛЬШУЩИЕ ТЕБЕ СПАСИБО! ОЧЕНЬ ВЫРУЧИЛ!
Yandex
Объявления
25.01.2010, 23:35     Помогите с курсовой!!!
Ответ Создать тему
Опции темы

Текущее время: 04:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru