Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
вольдемур
1

мужики!выручите пожалуйста! задан одномерный массив B состоящем из n вещественных элементов,

27.02.2014, 01:48. Показов 2364. Ответов 34
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
задан одномерный массив B состоящем из n вещественных элементов,определить позиции,в которых находятся отрицательные элементы,сосчитать их количество отрицательных элементов и вычислить их сумму, надо написать в визуал си++
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.02.2014, 01:48
Ответы с готовыми решениями:

Задан одномерный массив В,состоящем из n вещественных элементов С++
Помогите пожалуйста решить задачку)совсем не силен в с++( Задан одномерный массив В,состоящем из...

Одномерный массив в Java. Выручите пожалуйста
Создать одномерный массив Добавить метод getSum(), возвращающий сумму значений элементов...

Задан одномерный массив из N вещественных чисел
Вычислить среднее арифметическое квадратов всех элементов, не превосходящих по модулю число 3,6. ...

Задан одномерный массив вещественных чисел длины N
Задан одномерный массив вещественных чисел длины N. Все числа различны. Найти минимальный,...

34
272 / 266 / 146
Регистрация: 02.08.2012
Сообщений: 609
27.02.2014, 13:15 2
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
#include <iostream>
#include <cmath>
 
int main()
{
    srand(time(0));
    int n, counter = 0;
    double total = 0;
    std::cout << "Enter n: "; std::cin >> n;
    double* B = new double[n];
    for(int i = 0; i < n; i++)
    {
        B[i] = 100 - rand() % 200;
        B[i] = (B[i] < 0) ? -(sqrt(abs((int)B[i]))) : sqrt(B[i]);
        std::cout << B[i] << "\n";
        if(B[i] < 0)
        {
            counter++;
            total += B[i];
        }
    }
    
    (counter > 0) ? std::cout << "\nNegative numbers quantity is " << counter <<
                                 "\nSum of negative numbers: "     << total   << "\n\n"
                  : std::cout << "\nNo such elements\n\n";
    
    system("pause");
    return 0;
}
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
27.02.2014, 13:25 3
Цитата Сообщение от GuGo1991 Посмотреть сообщение
B[i] = (B[i] < 0) ? -(sqrt(abs((int)B[i]))) : sqrt(B[i]);
а это зачем?
0
272 / 266 / 146
Регистрация: 02.08.2012
Сообщений: 609
27.02.2014, 21:43 4
ValeryS, имитация вещественных чисел
1
413 / 250 / 118
Регистрация: 26.12.2012
Сообщений: 787
27.02.2014, 23:57 5
А так не проще
C++
1
B[i] = 1.2341 * (rand() % 20-10);
0
272 / 266 / 146
Регистрация: 02.08.2012
Сообщений: 609
28.02.2014, 00:55 6
Genn55, так будут только с плавающей запятой
0
413 / 250 / 118
Регистрация: 26.12.2012
Сообщений: 787
28.02.2014, 01:56 7
Ну да такие и нужны вещественные числа больше и меньше 0.Правильно?
Миниатюры
мужики!выручите пожалуйста! задан одномерный массив B состоящем из n вещественных элементов,  
0
272 / 266 / 146
Регистрация: 02.08.2012
Сообщений: 609
28.02.2014, 02:08 8
Genn55, да, но в вещественные числа входят и такие числа как 5.0, -7.0 и т. д.
Не хочется их исключать )
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
28.02.2014, 07:24 9
Цитата Сообщение от GuGo1991 Посмотреть сообщение
имитация вещественных чисел
интересное решение
но в данном контексте, я думаю, достаточно было переменных типа float/double
да и не лишен недостатков
генерирует числа в диапазоне от минус корень N до плюс корень N
расчет корня дорого стоит

проще так, опять же по моему
C++
1
n=N-((double)rand()/RAND_MAX)*2*N;
1
272 / 266 / 146
Регистрация: 02.08.2012
Сообщений: 609
28.02.2014, 16:33 10
ValeryS, не спорю что проще и как Genn55 предлагал тоже проще (правда в этом
случае все числа кратны 1.2341), но суть была в том чтобы почаще попадать в числа с плавающей запятой,
без значений после запятой (5.0, -7.0 и т. д.) В вашем варианте это произойдёт, но крайне редко.
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
28.02.2014, 17:02 11
Цитата Сообщение от GuGo1991 Посмотреть сообщение
В вашем варианте это произойдёт, но крайне редко.
так и в вашем тоже
все дело в округлении
число 7 может быть не 7.0 а 7.000000003 какое нибудь
число будет без этого мусора если дробь кратна 1/2n 0.5 0.25 и т.д
все числа в дубле и во флоате это дробь меньше 1 и степень
0
272 / 266 / 146
Регистрация: 02.08.2012
Сообщений: 609
28.02.2014, 18:18 12
ValeryS, да, но в моем случае, к слову, если сгенерировалось число B[i] = -100
C++
1
2
B[i] = 100 - rand() % 200; //Сгенерировалось -100
B[i] = -(sqrt(abs((int)B[i]))); //после этой операции B[i] будет равен -10, с дробной частью .0
Такова была задумка, поправьте меня если я не прав в исполнении
0
413 / 250 / 118
Регистрация: 26.12.2012
Сообщений: 787
28.02.2014, 22:50 13
Попробуйте так.Будут появляться и целые
C++
1
B[i]= - 5.00 + ((rand() % 1001) / 10.0);
Добавлено через 2 минуты
По моему мнению все же лучше,чем 100 и более раз вычислять квадратный корень.
1
9 / 9 / 8
Регистрация: 10.02.2014
Сообщений: 70
28.02.2014, 23:27 14
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
#include <iostream>
 using namespace std;
int main()
{
    int n,z=0;
    float arr[50],mas[50],s=0.0;
    cout<<"Размер массива: "; cin>>n;
    for (int i=0; i<n; i++)
    {
        cout<<'['<<i+1<<"]: "; cin>>arr[i];
    }
    cout<<"Номера отрицательных элементов: ";
    for (int i=0; i<n; i++)
        {
        if (arr[i]<0){z++;
        mas[i]=i;
        s+=arr[i];
        cout<<mas[i]<<"  ";
        }
 
        }
    cout<<endl;
    cout<<"Кол-во отрицательных элементов: "<<z<<endl;
    cout<<"Сумма отрицательных элементов: "<<s<<endl;
    return 0;
}
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
28.02.2014, 23:48 15
Цитата Сообщение от ALEXey__ Посмотреть сообщение
float arr[50],mas[50],s=0.0;
* * cout<<"Размер массива: "; cin>>n;
а если я введу 60???
Цитата Сообщение от ALEXey__ Посмотреть сообщение
mas[i]=i;
* * * * s+=arr[i];
* * * * cout<<mas[i]
а зачем целый массив mas[i]???
0
9 / 9 / 8
Регистрация: 10.02.2014
Сообщений: 70
01.03.2014, 00:27 16
Цитата Сообщение от ValeryS Посмотреть сообщение
а если я введу 60???
Ты будешь вводить 60 элементов, с клавиатуры?! Обычно в лабах хватает 5-20 элементов.
Ну если сильно хочется:
C++
1
float arr[100500]
Цитата Сообщение от ValeryS Посмотреть сообщение
а зачем целый массив mas[i]???
Согласен, тупанул.
Цитата Сообщение от ALEXey__ Посмотреть сообщение
for (int i=0; i<n; i++)
* * * * {
* * * * if (arr[i]<0){z++;
* * * * s+=arr[i];
* * * * cout<<i<<" *";
* * * * }
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
01.03.2014, 00:29 17
Цитата Сообщение от ALEXey__ Посмотреть сообщение
Ты будешь вводить 60 элементов, с клавиатуры?!
а если буду?
где "защита от дурака"?
0
9 / 9 / 8
Регистрация: 10.02.2014
Сообщений: 70
01.03.2014, 00:42 18
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
#include <iostream>
 using namespace std;
int main()
{
    int n,z=0;
    float arr[999999],s=0.0;
    cout<<"Размер массива: "; cin>>n;
    if (n>=999999){cout<<"Защита от дураков: слишком большой массив!";}
    else
    {for (int i=0; i<n; i++)
    {
        cout<<'['<<i+1<<"]: "; cin>>arr[i];
    }
    cout<<"Номера отрицательных элементов: ";
    for (int i=0; i<n; i++)
        {
        if (arr[i]<0){z++;
        s+=arr[i];
        cout<<i<<"  ";
        }
 
        }
    cout<<endl;
    cout<<"Кол-во отрицательных элементов: "<<z<<endl;
    cout<<"Сумма отрицательных элементов: "<<s<<endl;
    return 0;}
}
Так нормально?)
0
413 / 250 / 118
Регистрация: 26.12.2012
Сообщений: 787
01.03.2014, 01:17 19
Это что такое?
C++
1
cout<<'['<<i+1<<"]: ";
Добавлено через 4 минуты
и зачем else в 9 строчке?
0
9 / 9 / 8
Регистрация: 10.02.2014
Сообщений: 70
01.03.2014, 01:21 20
Цитата Сообщение от Genn55 Посмотреть сообщение
Это что такое?
Код C++
1
cout<<'['<<i+1<<"]: ";
Массив начинается с 0-го элемента. Показывает номер вводимого элемента. "i+1" - просто для удобства чтения, чтобы счет шел не с 0, а с 1;
Цитата Сообщение от Genn55 Посмотреть сообщение
и зачем else в 9 строчке?
Привычка.
0
01.03.2014, 01:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.03.2014, 01:21
Помогаю со студенческими работами здесь

В одномерном массиве, состоящем из n вещественных элементов, вычислить: сумму отрицательных элементов массив
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) сумму отрицательных...

В одномерном массиве, состоящем из n вещественных элементов, вычислить: • сумму положительных элементов массив
В одномерном массиве, состоящем из n вещественных элементов, вычислить: • сумму положительных...

Сформировать массив из минимальных элементов матрицы. Пожалуйста, выручите!
Задача: определить минимальный элемент каждого столбца матрицы и сформировать из них новый массив,...

В одномерном массиве, состоящем из n вещественных элементов, вычислить: - номер максимального по модулю элемента массив
В одномерном массиве, состоящем из n вещественных элементов, вычислить: - номер максимального по...

Выручите мужики...
Мужики помогите исправить,В пограмме о DVD фильмах там о Программе убрать автора есть все исходники...

Задан одномерный массив. Отсортировать массив в порядке убывания и возрастания элементов
Задан одномерный массив. Отсортировать массив в порядке убывания и возрастания элементов. Напишите...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru