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

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

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

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

26.10.2013, 16:53. Просмотров 2723. Ответов 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, элементы которого целые числа. Для каждой строки найти номер первого отрицательного элемента и записать данные...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ValeryS
Модератор
6633 / 5040 / 466
Регистрация: 14.02.2011
Сообщений: 16,850
26.10.2013, 16:56 #2
Цитата Сообщение от metalist1925 Посмотреть сообщение
Как найти номер последнего отрицательного элемента?
очень просто
последний- это первый с конца
обходи массив с конца и проверяй значения
как только появился отрицательный то выходи из цикла, это и будет последний отрицательный
1
metalist1925
1 / 1 / 0
Регистрация: 17.05.2011
Сообщений: 134
26.10.2013, 16:57  [ТС] #3
а кодом можешь помочь?
0
EzCoding
25 / 11 / 1
Регистрация: 26.10.2013
Сообщений: 85
Записей в блоге: 1
26.10.2013, 17:01 #4
Будем считать что массив длинной N заполнен.
C++
1
2
3
4
5
6
7
8
for (int i=n; i>0; i--)
{
if (massive[i] < 0)
{
 cout<< massive[i]; // здесь вместо cout можно присвоить глобальной переменой значение i;
 break;
}
}
0
ValeryS
Модератор
6633 / 5040 / 466
Регистрация: 14.02.2011
Сообщений: 16,850
26.10.2013, 17:07 #5
Цитата Сообщение от EzCoding Посмотреть сообщение
for (int i=n; i>0; i--)
а что нулевой( первый) элемент не будем проверять?
Цитата Сообщение от metalist1925 Посмотреть сообщение
а кодом можешь помочь?
примерно так
C++
1
2
3
4
int i;
for(i=n-1;i>-1;i--)
  if( A[i]<0)
    break;
после цикла в i индекс последнего отрицательного элемента или -1 если отрицательных в массиве нет
0
metalist1925
1 / 1 / 0
Регистрация: 17.05.2011
Сообщений: 134
26.10.2013, 17:38  [ТС] #6
Массив из 10 вещественных чисел задан случайным образом.Найти номер последнего отрицательного элемента.
Помогите пожалуйста с кодом.Исправьте.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
  const n=10;
  int a[n]={-1,5,7,4,-3,0,9,-7,2,0},i,N;
    for(i=n-1;i>-1;i--)
        if( a[i]<0)
        i=N;
    cout <<"Nomer elementa:"<<N;
  getch ();
  return 0;
}
0
EzCoding
25 / 11 / 1
Регистрация: 26.10.2013
Сообщений: 85
Записей в блоге: 1
26.10.2013, 17:49 #7
Цитата Сообщение от metalist1925 Посмотреть сообщение
Массив из 10 вещественных чисел задан случайным образом.Найти номер последнего отрицательного элемента.
Помогите пожалуйста с кодом.Исправьте.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
  const int n=10;
  int a[n]={-1,5,7,4,-3,0,9,-7,2,0};
  int N=0;
    for(int i=n-1; i>=0; i--)
        {
        if( a[i]<0) 
        {
            N=i;
            break;
        }
        }
    cout <<"Nomer elementa:"<<N;
  getch ();
  return 0;
}
На данном массиве выведет 7, если нужно вывести номер учитывая что нумерация с 1ого элемента - cout <<"Nomer elementa:"<<N+1;
0
metalist1925
1 / 1 / 0
Регистрация: 17.05.2011
Сообщений: 134
26.10.2013, 17:53  [ТС] #8
Спасибо, что исправили.а с блок-схемой алгоритма можете помочь?
0
EzCoding
25 / 11 / 1
Регистрация: 26.10.2013
Сообщений: 85
Записей в блоге: 1
26.10.2013, 17:55 #9
Цитата Сообщение от metalist1925 Посмотреть сообщение
Спасибо, что исправили.а с блок-схемой алгоритма можете помочь?
блок схема нужна?
могу описать, но рисовать влом)
Блок схема для 10 тоже или для n?
0
metalist1925
1 / 1 / 0
Регистрация: 17.05.2011
Сообщений: 134
26.10.2013, 17:57  [ТС] #10
Хоть так пусть будет.
0
EzCoding
25 / 11 / 1
Регистрация: 26.10.2013
Сообщений: 85
Записей в блоге: 1
26.10.2013, 18:00 #11
Цитата Сообщение от metalist1925 Посмотреть сообщение
Хоть так пусть будет.
Начало -> Ввод [a1, a2, a3, a4, a5, a6, a7, a8, a9, a10] -> Условие [ i=10; если a[i] < 0 ] - (Условие выполняется)[Вывод i]; Иначе (условие не выполняется) [i=i-1] и возвращаемся к условию;
0
EzCoding
25 / 11 / 1
Регистрация: 26.10.2013
Сообщений: 85
Записей в блоге: 1
26.10.2013, 18:07 #12
Массив: Как найти номер последнего отрицательного элемента?
ой, там в условии "a[i]<0?"
описался,прошу прощения)
0
ValeryS
Модератор
6633 / 5040 / 466
Регистрация: 14.02.2011
Сообщений: 16,850
26.10.2013, 18:47 #13
Цитата Сообщение от EzCoding Посмотреть сообщение
int N=0;
если нет ни одного отрицательного элемента и если отрицательный лежит в первой(нулевой) ячейке
результат будет одинаков
и зачем вводить дополнительную переменную?

Добавлено через 4 минуты
Цитата Сообщение от metalist1925 Посмотреть сообщение
i=N;
cout <<"Nomer elementa:"<<N;
и зачем ты в i записываешь N?
вот твой код поправленный
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
 const n=10;
 int a[n]={-1,5,7,4,-3,0,9,-7,2,0},i,N;
  for(i=n-1;i>-1;i--)
      if( a[i]<0)
        break;
 
 if(i<0)
   cout <<"None";
 else
   cout <<"Nomer elementa:"<<N;
 
 getch ();
 return 0;
}
0
EzCoding
25 / 11 / 1
Регистрация: 26.10.2013
Сообщений: 85
Записей в блоге: 1
26.10.2013, 19:30 #14
Цитата Сообщение от ValeryS Посмотреть сообщение
если нет ни одного отрицательного элемента и если отрицательный лежит в первой(нулевой) ячейке
результат будет одинаков
и зачем вводить дополнительную переменную?

Добавлено через 4 минуты

и зачем ты в i записываешь N?
вот твой код поправленный
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
 const n=10;
 int a[n]={-1,5,7,4,-3,0,9,-7,2,0},i,N;
  for(i=n-1;i>-1;i--)
      if( a[i]<0)
        break;
 
 if(i<0)
   cout <<"None";
 else
   cout <<"Nomer elementa:"<<N;
 
 getch ();
 return 0;
}
У вас ответ хранится в I, а вы выводите N;
А по поводу доп переменной - удобнее счетчик имеет внутри цикла отдельно,а результат отдельно.
А компилятор вам выдаст ошибку инициализации.
0
ValeryS
Модератор
6633 / 5040 / 466
Регистрация: 14.02.2011
Сообщений: 16,850
26.10.2013, 19:50 #15
Цитата Сообщение от EzCoding Посмотреть сообщение
У вас ответ хранится в I, а вы выводите N;
а это не у меня
это я код ТС скопировал поправил, а там не заметил
спасибо что обратил внимание
Цитата Сообщение от EzCoding Посмотреть сообщение
А компилятор вам выдаст ошибку инициализации.
это почему еще
Цитата Сообщение от EzCoding Посмотреть сообщение
А по поводу доп переменной - удобнее счетчик имеет внутри цикла отдельно,а результат отдельно.
насчет удобства вопрос спорный
"Не плодите сущности, без необходимости" (с)«Бритва О́ккама»
оптимизировать нужно учится на уровне алгоритмов, здесь у тебя проигрыш и в скорости, лишнее присвоение, и в памяти,лишняя переменная
можно вообще было вывести прямо в цикле сообщение если нашлось заданное число
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.10.2013, 19:50
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.10.2013, 19:50
Ответ Создать тему
Опции темы

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