IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Неисправная программа на СИ++, В поиске ошибки
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 24
Пол: Женский
Реальное имя: Екатерина

Репутация: -  0  +


Здравствуйте! Делаю лабораторную работу и не получается.
Сформировать одномерный массив целых чисел, используя датчик случайныхчисел.
Распечатать получившийся массив.
Поменять местами минимальный и максимальный элементы.
Удалить из массива все элементы, превышающие его среднее значение более, чем на 10 %.
Распечатать полученный массив.
Подскажите, где у меня неправильно написано. Выдает ошибку.
#include <iostream.h>
#include <conio.h>
#include<stdio.h>
#include<math.h>
#include <stdlib.h>
#include <locale.h>

int main()
{
int mas[10];
randomize();
cout<<"Massiv imeet vid: ";
for(int i = 0; i < 10; i++)
{
mas[i] = random(10); //заполняем
cout << mas[i] <<" "; //выводим
}
{
int max=mas[0];

for (int i=1; i < 10; i++)
{
if (mas[i]>max) max=mas[i];
}
cout<<"\n max="<<max<<"\n";
}
{
int min=mas[0];
for (int i=1; i < 10; i++)
{
if (mas[i]<min) min=mas[i];
}
cout<<"\n max="<<min<<"\n";
}
//----------------------------------------------
int max=mas[0], maxPos=0;
for (int i=1; i < 10; i++)
if (mas[i]>max)
{max=mas[i];
maxPos=i;
}
//-----------------------------------------------
int min=min[0], minPos=0;
for (int i=1; i < 10; i++)
if (mas[i]<min)
{min=mas[i];
minPos=i;
}
//--------------------------------------------
//меняем местами
mas[maxPos]=min;
mas[minPos]=max;

getch();
return 0;
}



Сообщение отредактировано: Екатерина -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Вот тут:
Цитата
int min=min[0], minPos=0;

Возможно, имелось в виду min = mas[0]?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


Вот (Показать/Скрыть)

Екатерина, а ты смотришь на то, на что компилятор ругается? Он все сам рассказывает! smile.gif
Желательно использовать константу для размера массива:
#default n 10
легче потом менять будет если вдруг придется.

Всем:
random - есть такая штука в Сях?
ни conio.h ни conio у меня не находит. (Пишу в geany под ubuntu) Библиотеки поставляться же должны вместе с компилятором?
Катя, у меня что-то ни random ни conio не работало: conio убрал, а рандом заменил.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Цитата
random - есть такая штука в Сях?
ни conio.h ни conio у меня не находит. (Пишу в geany под ubuntu)
Есть еще Турбо С++ под ДОС, судя по randomize() - это именно оно. Так что все внесенные исправления будут неправильными с точки зрения того компилятора
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 24
Пол: Женский
Реальное имя: Екатерина

Репутация: -  0  +


Рассказывать то он конечно рассказывает, но не по русски, а английский я читать не умею. А где это #default n 10 прописывается
Ребята. Вот код, который был составлен вначале работы и он работает как часы! Но потом я стала фантазировать и кажется сделала совсем не то. Наподключала библиотек (думала так лучше будет). Теперь у меня вообще ничего не работает mega_chok.gif

#include <iostream.h>
#include <conio.h>

int main()
{
int mas[10];
randomize();
cout<<"Massiv imeet vid: ";
for(int i = 0; i < 10; i++)
{
mas[i] = random(10); //заполняем
cout << mas[i] <<" "; //выводим
}
{
int max=mas[0];

for (int i=1; i < 10; i++)
{
if (mas[i]>max) max=mas[i];
}
cout<<"\n max="<<max<<"\n";
}
{
int min=mas[0];

for (int i=1; i < 10; i++)
{
if (mas[i]<min) min=mas[i];
}
cout<<"\n max="<<min<<"\n";
}
getch();

return 0;
}



 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Не надо просто так ничего подключать. Подключай только тогда, когда компилятор начинает ругаться, что не видит какого-то определения... Смотри:

#include <iostream.h>
#include <conio.h>
#include <stdlib.h>

int main()
{
const int n = 10;
int mas[n];

randomize();
cout<<"Massiv imeet vid: ";
for(int i = 0; i < n; i++)
{
mas[i] = random(10); // заполняем
cout << mas[i] << " "; // выводим
}
cout << endl;

int indexMin = 0, indexMax = 0;
for(int i = 0; i < n; i++) // ищем мин/макс
{
if(mas[i] < mas[indexMin]) indexMin = i;
if(mas[i] > mas[indexMax]) indexMax = i;
}
cout << "min = " << mas[indexMin] << endl;
cout << "max = " << mas[indexMax] << endl;

// Меняем местами
int t = mas[indexMin];
mas[indexMin] = mas[indexMax];
mas[indexMax] = t;

// Результат ...
for(int i = 0; i < n; i++)
{
cout << mas[i] << " ";
}
cout << endl;
getch();
return 0;
}
Ты бы все-таки сказала, каким компилятором пользуешься. Между ними есть разногласия обычно.

Сообщение отредактировано: IUnknown -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 24
Пол: Женский
Реальное имя: Екатерина

Репутация: -  0  +


Класс! Не ожидала что тут супер-специалисты подсказывают!!! Работает! Спасибо!
А вообще, подключение лишних библиотек не является грубой ошибкой?
Цитата
Ты бы все-таки сказала, каким компилятором пользуешься. Между ними есть разногласия обычно
- я и сама не знаю. А как это узнать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Как программа называется которую ты запускаеш?Visual Studio ??Если да,то какого года выпуска,там пишут обычно 2008 2010 и тд.Есть еще вариант Borland C++.На самом деле их превеликое множество,но основных немного.
Цитата

А вообще, подключение лишних библиотек не является грубой ошибкой?

Ну это смотря что понимать под лишними и под ошибкой.....
Но то,что написано в стандартных библиотеках почти всегда лучше того,что ты придумать можеш сам(в расчет не берутся моменты,когда ты уже опытный программист и сам способен реализовать те или иные необходимые средства на уровне или лучше стандартных библиотек).
А так, если под лишними подразумеваются библиотеки, которые подключаются ,но вообще не используются,то ошибкой это назвать нельзя,это просто бесполезные строчки кода,единсвенное,что они делают это захламляют программу и возможно(точно не уверен) увеличивают время сборки проекта.На работоспособность они никак не влияют.(Ну или я с этим не сталкивался).

Кстати IUnknown,если не секрет, каким компилятором ты пользуешся?Еще вопрос почему не используется using namespace std; Кстати я пробовал ввести твой код он скомпилировался но в консоль ничего не выводится)))

Сообщение отредактировано: Krjuger -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Цитата
но вообще не используются,то ошибкой это назвать нельзя,это просто бесполезные строчки кода,единсвенное,что они делают это захламляют программу и возможно(точно не уверен) увеличивают время сборки проекта.На работоспособность они никак не влияют
Это неверное утверждение. Даже порядок подключения хидеров влияет на работоспособность, особенно в С++. Если интересно - подберу несколько ярких примеров. Но об этом - не здесь smile.gif

Цитата
я и сама не знаю. А как это узнать?
В любой IDE в меню Help есть пункт About, там это и написано...

Цитата
если не секрет, каким компилятором ты пользуешся?Еще вопрос почему не используется using namespace std; Кстати я пробовал ввести твой код он скомпилировался но в консоль ничего не выводится)))
Не секрет. Вообще у меня GCC, и чтобы проверить я написал программу по всем правилам: и с iostream (без .h), и с using namespace, все как положено. Но я достаточно много писал под ДОС на Турбо С++, и в курсе, что тот компилятор принимает, а что - нет. Так что потом я просто заменил в своем коде все что нужно...

Сообщение отредактировано: IUnknown -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Профи
****

Группа: Пользователи
Сообщений: 652
Пол: Мужской
Реальное имя: Алексей

Репутация: -  20  +


Цитата

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

Да я сталкивался с подобным.Более простой пример,это если пишется функция, в которой используется другая функция, описываемая после первой,пишет дескать незнаю я такой.С хидерами я думаю таже петрушка.Но разве для стандартных библиотек это принципиально.... Не знал.
Но все таки если подключаются вообще не используемые,то их присутствие или отсутствие реально влияет???

Сообщение отредактировано: Krjuger -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Новичок
*

Группа: Пользователи
Сообщений: 24
Пол: Женский
Реальное имя: Екатерина

Репутация: -  0  +


Понятно! Но хочется все-таки верить в то что они лишь захламляют программу и почти не влияют на её работоспособность. Ведь это лучше чем такая ошибка как отсутствие нужной библиотеки и отказ программы работать.
По поводу компилятора. У меня установлен DELPHI/C++ BUILDER 2009.
Надеюсь я ответила.
А вот с этим не поможете: Удалить из массива все элементы, превышающие его среднее значение более чем на 10% ?

Сообщение отредактировано: Екатерина -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 2.05.2024 19:22
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name