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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2011, 17:08   #1
Shinobig
Пользователь
 
Регистрация: 04.10.2011
Сообщений: 25
По умолчанию найти среднее арифметическое массива не учитывая максимально и минимальное. (С++)

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

вот пытался написать программу:
найти среднее арифметическое массива не учитывая максимально и минимальное.

вроде понял как писать, все уже перепроверил, но не понимаю почему он не хочет работать.

и объясните пжлст человеческим языком(по книге я и сам читать умею, но сути не улавливаю толком) что значат выделенные жирным строки кода.

Код:
#include <iostream>
int c=3; int max; int min; double s; double a; int i; int j;
void main();
{
int massiv[c][c]
i=0;
j=0;
cout << "введите все элементы массива" << endl
for (i=0; i<c;i++)
for (j=0;j<c;j++)
cin >> massiv[i][j];
cout << endl << endl << endl;
{
    max=massic[0][0];
for (i=0; i<c;i++)
for (j=0;j<c;j++)
 if (massiv[i][j]>max) max=massiv[i][j];
}
{
min=massiv[0][0];
for (i=0;i<c;i++)
for (j=0;j<c;j++)
if (massiv[i][j]<min) min=massiv[i][j];
}
{
for (i=0;i<c;i++);
for (j=0;j<c;j++);
s=s+massiv[i][j];
a=(s-min-max)/(c*c-2);
cout << a << endl;
}
return 0;
}

учиться начал по книге Стефана Р.Дэвиса "С++ для чайников"
программирую на Code::Block svn build


спасибо.


________
1) Название темы по правилам форума должно адекватно отражать суть решаемой задачи/проблемы.
На первый раз я исправил.
В последующем, темы с подобным названием будут закрываться или удаляться,
а автор такой темы будет получать штрафные баллы.

2) Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)

Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 05.10.2011 в 00:36.
Shinobig вне форума Ответить с цитированием
Старый 04.10.2011, 17:15   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
#include <iostream>
int c=3; int max; int min; double s; double a; int i; int j;
void main() {
int massiv[c][c]
i=0;
j=0;
cout << "введите все элементы массива" << endl
for (i=0; i<c;i++) for (j=0;j<c;j++) {
 cin >> massiv[i][j];
 max=(massiv[i][j]>max)?massiv[i][j]:max;
 min=(massiv[i][j]<min)?massiv[i][j]:min;
}

c=0;
for (i=0;i<c;i++) 
 for (j=0;j<c;j++) {
  if(massiv[i][j]!=max && massiv[i][j]!=min){  
   s+=massiv[i][j];c++;
  }
}

a=s/c;
cout << a << endl;

return 0;
}
с потолка...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.10.2011, 17:16   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Что значит "не хочет работать"? Не компилируется? Например, тут пропущена ;
Код:
cout << "введите все элементы массива" << endl;
Тут блок (в { ... }) непонятно для чего.
Код:

{
    max=massic[0][0];
for (i=0; i<c;i++)
for (j=0;j<c;j++)
 if (massiv[i][j]>max) max=massiv[i][j];
}
Кстати, а зачем вы все переменные, кроме массива, объявили глобально и в начале программы (это же не Си)?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 04.10.2011, 17:30   #4
Shinobig
Пользователь
 
Регистрация: 04.10.2011
Сообщений: 25
По умолчанию

Цитата:
Что значит "не хочет работать"? Не компилируется? Например, тут пропущена ;
Код:
cout << "введите все элементы массива" << endl;
я не понимаю, что за ошибки он мне выдает, что требует от меня.

Цитата:
Тут блок (в { ... }) непонятно для чего.
Код:

{
    max=massic[0][0];
for (i=0; i<c;i++)
for (j=0;j<c;j++)
 if (massiv[i][j]>max) max=massiv[i][j];
}
ну тут сравниваются все элементы массива и находится максимум. разве не так?

Цитата:
Кстати, а зачем вы все переменные, кроме массива, объявили глобально и в начале программы (это же не Си)?
а разве нет разницы, где объявлять переменные?
Shinobig вне форума Ответить с цитированием
Старый 04.10.2011, 17:39   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
и объясните пжлст человеческим языком
void main();
Функция main. После прочтения раздела о функциях мб будет понятнее. Обычно называется входная точка программы и т.п., есть в любой программе, с нее она начинается, потом в ней могут вызываться другие функции, если они есть и т.д.
Цитата:
#include <iostream>
С # начинаются команды препроцессору (погугли), include — подключение библиотеки и т.п. в данном случае iostream (в которой содержатся например функции cout и cin). По сути перед компиляцией просто копируется содержимое этого файла (можешь посмотреть, что там находится. обычно исходных кодов там нет, только т.н. "интерфейс").

И не обязательно отвечать редактированием своего первого сообщения.

Цитата:
а разве нет разницы, где объявлять переменные?
Да, нет разницы. Просто обычно "красивее", удобнее для чтения и т.д. когда объявление рядом с первым использованием.
Цитата:
ну тут сравниваются все элементы массива и находится максимум. разве не так?
{ } лишние. Хотя тут это вряд ли на что-то повлияло.
Цитата:
я не понимаю, что за ошибки он мне выдает, что требует от меня.
Покажи ошибки)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 04.10.2011 в 17:45.
Alex11223 вне форума Ответить с цитированием
Старый 04.10.2011, 17:55   #6
Shinobig
Пользователь
 
Регистрация: 04.10.2011
Сообщений: 25
По умолчанию

++\shinobig\main.cpp|3|error: '::main' must return 'int'|
++\shinobig\main.cpp|4|error: expected unqualified-id before '{' token|
||=== Build finished: 2 errors, 0 warnings ===|
Shinobig вне форума Ответить с цитированием
Старый 04.10.2011, 18:01   #7
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
'::main' must return 'int'|
int main вместо void main т.к. в конце есть return 0 (либо можно это убрать если компилятор позволит).
void — функция ничего не возвращает.
int — функция должна вернуть целое число типа int.

Вторая ошибка про то, что ; не надо после main()
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 04.10.2011, 18:08   #8
Shinobig
Пользователь
 
Регистрация: 04.10.2011
Сообщений: 25
По умолчанию

но у меня же при выведение среднего арифметического не обязательно выдет целое число.

и что значит "функция должны вернуть целое число типа int"?? т.е. куда вернуть?
Shinobig вне форума Ответить с цитированием
Старый 04.10.2011, 18:11   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
for (i=0;i<c;i++);
for (j=0;j<c;j++);
Зачем тут точки-запятые? Они завершают блок цикла, оставляя у тебя его тела пустыми - короче цикл отработает в холостую, а оператор s=s+massiv[i][j]; проедется один раз причем скорее всего с ошибкой.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.10.2011, 18:13   #10
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

В никуда. Системе (ОС). Именно сама функция main, не путай со своим заданием и т.п. Это (речь именно про то, что main должна вернуть 0, не путать ни с чем другим) было нужно во времена ДОС, сейчас уже вроде малоактуально, но осталось с тех времен.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 04.10.2011 в 18:21.
Alex11223 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти среднее арифметическое чётных элементов массива Ринка Паскаль, Turbo Pascal, PascalABC.NET 3 21.09.2011 19:29
Найти среднее арифметическое массива Богдан Величко Помощь студентам 9 26.05.2011 00:25
Найти среднее арифметическое элементов массива [Паскаль] ГениальныйИнФормат Помощь студентам 7 20.12.2010 08:24
Найти среднее арифметическое массива. gree Помощь студентам 6 13.05.2009 21:52