Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.88
metalist1925
1 / 1 / 0
Регистрация: 17.05.2011
Сообщений: 134
#1

Массив: Как найти номер последнего отрицательного элемента? - C++

26.10.2013, 16:53. Просмотров 2950. Ответов 21
Метки нет (Все метки)

Как найти номер последнего отрицательного элемента?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2013, 16:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массив: Как найти номер последнего отрицательного элемента? (C++):

Найти номер последнего отрицательного элемента массива - C++
# include <iostream> using namespace std; void main () { int i=0; int p; setlocale(LC_ALL, "rus"); cout<<"Введите числа...

В массиве N элементов найти номер последнего отрицательного элемента - C++
В массиве N элементов найти номер последнего отрицательного элемента. Значение элемента и его порядковый номер вывести на экран. C++

В квадратной матрице найти номер первого отрицательного элемента в строке и составить из них массив. - C++
Помогите плз. Никак соображу как сделать лабу. Дан массив размером nxn, элементы которого целые числа. Для каждой строки найти номер...

Для каждой строки найти номер первого отрицательного элемента и записать данные в новый массив - C++
Решите пожалуйста. Завтра надо сдать. Для каждой строки найти номер первого отрицательного элемента и записать данные в новый массив.

Найти номер последнего максимального элемента последовательности используя одномерный массив - C++
2 Задача:Дана последовательность из N действительных чисел найти номер последнего максимального элемента используя одномерный массив.

Для каждой строки матрицы найти номер первого отрицательного элемента, и записать данные в новый массив - C++
Дан массив размером n*n, элементы которого целые числа. Для каждой строки найти номер первого отрицательного элемента и записать данные...

21
EzCoding
25 / 11 / 1
Регистрация: 26.10.2013
Сообщений: 85
Записей в блоге: 1
26.10.2013, 20:02 #16
Цитата Сообщение от ValeryS Посмотреть сообщение
а это не у меня
это я код ТС скопировал поправил, а там не заметил
спасибо что обратил внимание

это почему еще

насчет удобства вопрос спорный
"Не плодите сущности, без необходимости" (с)«Бритва О́ккама»
оптимизировать нужно учится на уровне алгоритмов, здесь у тебя проигрыш и в скорости, лишнее присвоение, и в памяти,лишняя переменная
можно вообще было вывести прямо в цикле сообщение если нашлось заданное число
Ну если убрать N- будет норм.
Да, насчет вывода в цикле бесспорно удобнее. Не понимаю зачем вы делаете проверку i>-1 если можно проверять i>=0;
А если выводить вне цикла - лучше иметь счетчик отдельно и отдельно переменную вывода, счетчик может понадобится еще для каких то подзадач. В целом насчет оптимизации вы правы.
0
ValeryS
Модератор
6709 / 5118 / 482
Регистрация: 14.02.2011
Сообщений: 17,203
26.10.2013, 21:41 #17
Цитата Сообщение от EzCoding Посмотреть сообщение
Ну если убрать N- будет норм.
да и при N будет нормально, ошибки не будет, просто на экран выведется мусор, переменная то не инициализирована
Цитата Сообщение от EzCoding Посмотреть сообщение
Не понимаю зачем вы делаете проверку i>-1 если можно проверять i>=0;
этот код выполнит одно и тоже но при записи i>=0 возможен вариант что будут две проверки на больше и на равно
неизвестно как компилятор откомпилирует, оптимизирует или нет, на каком камне это будет исполнятся
а так я просто показал еще один путь решения
не люблю мыслить шаблонно
Цитата Сообщение от EzCoding Посмотреть сообщение
А если выводить вне цикла - лучше иметь счетчик отдельно и отдельно переменную вывода, счетчик может понадобится еще для каких то подзадач.
так если он не нужен снаружи объявляй его в цикле
да и счетчик это не приговор
можешь в одном цикле объявить i а в другом ii
почитай Криса Касперски "Техника отладки программ без исходных кодов" "Основы хакерства" и другие книги
и поймешь что получается в исполняемом коде, хороший оптимизатор может так перелопатить твою программу, что её никто не узнает

Цитата Сообщение от Andrey027 Посмотреть сообщение
Помогите найти ошибку.
одну
Цитата Сообщение от Andrey027 Посмотреть сообщение
Microsoft visual C++ 6.0
Цитата Сообщение от Andrey027 Посмотреть сообщение
double a[5],
Цитата Сообщение от Andrey027 Посмотреть сообщение
cout<<"Vvedite razmer massiva";
зачем? он итак известен 5
а что будет, если я введу100
Цитата Сообщение от Andrey027 Посмотреть сообщение
cout<<"\nVvedite massiv:\n";
cin>>a[n];
выход за пределы массива

и где ввод всех элементов массива?
Цитата Сообщение от Andrey027 Посмотреть сообщение
for(i=0;i<n;i++)
{
cout<<"\nMassiva:\n"<<a[i];
p*=a[i];
k++;
}
и где проверка на отрицательный элемент?
k будет равно n
0
EzCoding
25 / 11 / 1
Регистрация: 26.10.2013
Сообщений: 85
Записей в блоге: 1
26.10.2013, 23:39 #18
Цитата Сообщение от ValeryS Посмотреть сообщение
да и при N будет нормально, ошибки не будет, просто на экран выведется мусор, переменная то не инициализирована

этот код выполнит одно и тоже но при записи i>=0 возможен вариант что будут две проверки на больше и на равно
неизвестно как компилятор откомпилирует, оптимизирует или нет, на каком камне это будет исполнятся
а так я просто показал еще один путь решения
не люблю мыслить шаблонно

так если он не нужен снаружи объявляй его в цикле
да и счетчик это не приговор
можешь в одном цикле объявить i а в другом ii
почитай Криса Касперски "Техника отладки программ без исходных кодов" "Основы хакерства" и другие книги
и поймешь что получается в исполняемом коде, хороший оптимизатор может так перелопатить твою программу, что её никто не узнает



одну


зачем? он итак известен 5
а что будет, если я введу100


выход за пределы массива

и где ввод всех элементов массива?

и где проверка на отрицательный элемент?
k будет равно n
спасибо, почитаю. Только начинаю программировать, поэтому много не знаю)


Код правильный:
Добавлено через 6 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
double mas [1000], result=1.0;
int n;
cout<<"Vvedite razmer massiva:";
cin>>n;
for (int j=0; j<n; j++) cin >> mas [j];
for (int i=0; i<n; i++)
  {
  if (mas [i] > 0) continue;
  else n=i;
  }
for (int g=0; g<n; g++) result=result*mas[g];
cout << "Massive do otrucatelnoro:";
for (int i=0; i<n; i++)  cout<<mas [i]<<" ";
cout << endl;
cout << "Proizvedenie :"<<result;
getch ();
return 0;
}
0
ValeryS
Модератор
6709 / 5118 / 482
Регистрация: 14.02.2011
Сообщений: 17,203
26.10.2013, 23:40 #19
Цитата Сообщение от EzCoding Посмотреть сообщение
double mas [1000], result=1.0;
iint n;
cout<<"Vvedite razmer massiva";
так то лучше, но если пользователь введет 100000????
выход: выделять память под массив динамически
C++
1
2
3
cout<<"Vvedite razmer massiva";
cin>>n;
double *mas=new doudle[n];
и когда не нужно удалять
C++
1
delete []mas;
1
EzCoding
25 / 11 / 1
Регистрация: 26.10.2013
Сообщений: 85
Записей в блоге: 1
26.10.2013, 23:42 #20
Цитата Сообщение от ValeryS Посмотреть сообщение
так то лучше, но если пользователь введет 100000????
выход: выделять память под массив динамически
C++
1
2
3
cout<<"Vvedite razmer massiva";
cin>>n;
double *mas=new doudle[n];
и когда не нужно удалять
C++
1
delete []mas;
Обычно в таких задачах указаны лимиты, а с динамическими массивами у меня всегда какие-нибудь ошибки вылезают.
Но спасибо что исправили) Буду знать как такое использовать)
0
ValeryS
Модератор
6709 / 5118 / 482
Регистрация: 14.02.2011
Сообщений: 17,203
26.10.2013, 23:48 #21
Цитата Сообщение от EzCoding Посмотреть сообщение
Обычно в таких задачах указаны лимиты, а с динамическими массивами
не путай
это не динамический массив,а динамическое выделение памяти
динамический массив это если ты ввел массив размером допустим 2 а потом записал в сотый элемент
массив автоматически растянется
классический пример динамического массива vector из std или CArray из MFC
0
Andrey027
0 / 0 / 0
Регистрация: 26.10.2013
Сообщений: 75
07.11.2013, 21:16 #22
Цитата Сообщение от EzCoding Посмотреть сообщение
спасибо, почитаю. Только начинаю программировать, поэтому много не знаю)


Код правильный:
Добавлено через 6 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
double mas [1000], result=1.0;
int n;
cout<<"Vvedite razmer massiva:";
cin>>n;
for (int j=0; j<n; j++) cin >> mas [j];
for (int i=0; i<n; i++)
  {
  if (mas [i] > 0) continue;
  else n=i;
  }
for (int g=0; g<n; g++) result=result*mas[g];
cout << "Massive do otrucatelnoro:";
for (int i=0; i<n; i++)  cout<<mas [i]<<" ";
cout << endl;
cout << "Proizvedenie :"<<result;
getch ();
return 0;
}
Помогите составить блок схему к программе
0
07.11.2013, 21:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.11.2013, 21:16
Привет! Вот еще темы с ответами:

Найти значение последнего отрицательного элемента - C++
Дана последовательность из n вещественных чисел. Найти значение последнего отрицательного элемента. Массив от -5 до 4, уже дан,при...

Для каждого столбца массива найти номер последнего нечетного элемента и записать данные в новый массив - C++
Дан массив размером nxn, элементы которого целые числа. Для каждого столбца найти номер последнего нечетного элемента и записать данные в...

Для каждого столбца массива найти номер последнего нечетного элемента и записать данные в новый массив - C++
1) Дан массив размером п*п, элементы которого целые числа. Для каждого столбца найти номер последнего нечетного элемента и записать данные...

Найти величину и номер первого отрицательного и последнего положительного элементов в массиве - C++
хелп с программой. Найти величину и номер первого отрицательного и последнего положительного элементов в массиве вещественного типа...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru