0 / 0 / 0
Регистрация: 02.10.2018
Сообщений: 64
1

Определить, есть ли в массиве отрицательные числа (если да - определить номер первого из них)

21.11.2018, 10:25. Показов 5486. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста написать программу на с++ через функцию!

Дан массив вещественных чисел, определить есть ли в нем отрицательные числа. При положительном ответе, определить номер первого из них и вывести все следующие за ним элементы. Определить их количество
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.11.2018, 10:25
Ответы с готовыми решениями:

Если среди чисел (n = 1,2,…,30) есть отрицательные, то вывести номер и значение первого из них
2. Если среди чисел (n = 1,2,…,30) есть отрицательные, то вывести номер и значение первого из...

В массиве имеются элементы равные 5 определить номер первого из них.
В массиве имеются элементы равные 5 определить номер первого из них. Что-то я совсем заморочился,...

Известно, что в массиве имеются элементы равные 5, определить номер первого и последнего из них
Помогите пожалуйста составить программу, решающую следующую задачу. Известно, что в массиве...

Определить, есть ли в массиве отрицательные числа
1)В некоторых видах спортивных состязаний (например, в фигурном катании) выступление каждого...

7
641 / 443 / 223
Регистрация: 10.06.2016
Сообщений: 2,034
21.11.2018, 10:31 2
Это контрольная?
0
0 / 0 / 0
Регистрация: 02.10.2018
Сообщений: 64
21.11.2018, 13:10  [ТС] 3
да)
0
1203 / 701 / 331
Регистрация: 22.02.2018
Сообщений: 2,048
Записей в блоге: 2
21.11.2018, 13:29 4
Лучший ответ Сообщение было отмечено phoenix_mgn как решение

Решение

Как-то так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
 
const int dim = 10;
 
using namespace std;
 
bool ret_res(float *a, int len, int *index)
{
   *index = 0;  
  
    for(int i = 0; i<len; i++)
     if(a[i]<0.)
      {
         *index = i+1;
         break;
      }
 
   if(*index) return 1;
 
      return 0;
}
 
main()
{
   float arr[dim] = {0.55, 2.44, -1.33, 3.45, 0.55, -3.44, 1.56, -0.55, 11, 3.45};
   int ind;
 
     if(ret_res(arr, dim, &ind))
     {
        for(int i = ind; i<dim; i++)
         cout<<arr[i]<<endl;
         cout<<dim-ind<<endl;
     }
     else cout<<"Not negatives"<<endl;
 
   system("pause");
}
0
0 / 0 / 0
Регистрация: 02.10.2018
Сообщений: 64
27.11.2018, 15:10  [ТС] 5
Все круто, но нужно что бы еще программа определила № первого отрицательного числа,а только потом вывела остальные числа
0
1350 / 850 / 364
Регистрация: 26.02.2015
Сообщений: 3,790
27.11.2018, 15:28 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
24
25
26
27
28
29
30
31
#include <algorithm>
#include <array>
#include <iostream>
#include <iterator>
#include <random>
 
int main() {
 
    constexpr std::size_t size{ 10 };
    std::array<double, size> arr;
 
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_real_distribution<double> dist(-50.0, 50.0);
 
    std::generate(arr.begin(), arr.end(), [&gen, dist]() { return dist(gen); });
 
    std::cout << std::distance(
        arr.begin(), find_if(arr.begin(), arr.end(), [](double val) { return val < 0; }));
 
    std::cout << '\n';
 
    for (const auto &el : arr)
        std::cout << el << ' ';
 
    std::cout << '\n';
 
    system("PAUSE");
    return 0;
 
}
Добавлено через 10 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <algorithm>
#include <array>
#include <iostream>
#include <iterator>
#include <random>
 
template<typename T, std::size_t size>
int findFirstNegative(std::array<T, size> &arr) {
 
    auto it = find_if(arr.begin(), arr.end(), [](double val) { return val < 0; });
 
    if (it == arr.end())
        return -1;
 
    return std::distance(arr.begin(), it);
 
}
 
int main() {
 
    constexpr std::size_t size{ 10 };
    std::array<double, size> arr;
 
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_real_distribution<double> dist(-50.0, 50.0);
 
    std::generate(arr.begin(), arr.end(), [&gen, dist]() { return dist(gen); });
 
    if (findFirstNegative<double, size>(arr) != -1) {
 
        std::cout << "Index of the first negative element: " << findFirstNegative(arr)
            << '\n';
 
    } else {
 
        std::cout << "There are no negative elements in the array.\n";
 
    }
 
    for (const auto &el : arr)
        std::cout << el << ' ';
 
    std::cout << '\n';
 
    system("PAUSE");
    return 0;
 
}
0
0 / 0 / 0
Регистрация: 02.10.2018
Сообщений: 64
27.11.2018, 15:41  [ТС] 7
Нужно решение строго через функцию, помогите пожалуйста(
0
1350 / 850 / 364
Регистрация: 26.02.2015
Сообщений: 3,790
27.11.2018, 16:28 8
Цитата Сообщение от phoenix_mgn Посмотреть сообщение
Нужно решение строго через функцию
Я тебе предоставил два решение: одно без функции, второе с функцией.
0
27.11.2018, 16:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.11.2018, 16:28
Помогаю со студенческими работами здесь

Определить, есть ли в массиве отрицательные числа
Определить, есть ли в массиве В отрицательные числа. Ответ должен быть «Да» или «Нет».

Определить в массиве номер первого отрицательного числа
Здравствуйте. Подскажите, пожалуйста, как решить следующую задачу: Определите в заданном массиве...

Проверить, есть ли в нем элементы, равные нулю. Если есть, найдите номер первого из них
Решить: Создать массив с именем А из 10-ти элементов, задав значения его элементов с помощью...

Определить есть ли в массиве положительные, отрицательные числа и нули
Дан одномерный массив. Определить есть ли в этом массиве положительные, отрицательные числа и нули....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru