Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
вольдемур
0 / 0 / 0
Регистрация: 23.02.2014
Сообщений: 1
#1

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

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

задан одномерный массив B состоящем из n вещественных элементов,определить позиции,в которых находятся отрицательные элементы,сосчитать их количество отрицательных элементов и вычислить их сумму, надо написать в визуал си++
http://www.cyberforum.ru/cpp-beginners/thread1159112.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2014, 01:48
Я подобрал для вас темы с готовыми решениями и ответами на вопрос мужики!выручите пожалуйста! задан одномерный массив B состоящем из n вещественных элементов, (C++):

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

Задан одномерный массив, содержащий n элементов, определить сумму всех чётных элементов
Задан одномерный массив, содержащий n элементов. определить, сколько раз в нём...

Задан одномерный массив из 16 элементов .Сформировать двухмерный массив 4×4, используя функцию преобразования любого
Здравствуйте. Помогите написать программу: Задан одномерный массив из 16...

Задан двумерный массив вещественных чисел размерностью (M+1)x(N+1). В строку m+1 записать суммы элементов по с
Задан двумерный массив вещественных чисел размерностью (M+1)x(N+1). В строку...

Одномерный массив, состоящий из N вещественных элементов
В одномерном массиве из N вещественных элементов, вычислить: • количество...

34
Genn55
378 / 225 / 108
Регистрация: 26.12.2012
Сообщений: 744
01.03.2014, 01:38 #21
да и
C++
1
arr[999999]
великовато, будет вылетать программа ,хватило бы и 100 для вашего случая.

Добавлено через 11 минут
Запустил вашу программу,как я и предполагал у меня вылетела.Уменьшил размер до 1000 все нормально.А else здесь не нужно,условие будет выполняться.
0
ALEXey__
7 / 7 / 8
Регистрация: 10.02.2014
Сообщений: 70
01.03.2014, 01:43 #22
Genn55, Магия?)

Да, согласен, else не нужно.
0
ALEXey__
7 / 7 / 8
Регистрация: 10.02.2014
Сообщений: 70
01.03.2014, 02:02 #23
мужики!выручите пожалуйста! задан одномерный массив B состоящем из n вещественных элементов,
0
Genn55
378 / 225 / 108
Регистрация: 26.12.2012
Сообщений: 744
01.03.2014, 02:26 #24
А ни какой магии нет.Программы пишутся не под конкретный IDE,а под стандарт.Так что у вас будет работать,а у меня и у других нет.Ну и посудите сами.Вы просите кампиллятор выделить сразу 999999 подряд идущих блоков ячеек памяти,а использовать будете в лучшем случае 20.Ну и где здравый смысл?Если уж собираетесь задавать свой размер,то используйте динамический массив.И второе какая гарантия,что вы сумеете ввести все 999999 чисел и программа сработает верно?Скорее всего уже после половины этого размера начнутся ошибки.Попробуйте ради интереса хотя бы,указав 100 прогнать несколько раз.
0
Genn55
378 / 225 / 108
Регистрация: 26.12.2012
Сообщений: 744
01.03.2014, 02:29 #25
Скрин
0
Миниатюры
мужики!выручите пожалуйста! задан одномерный массив B состоящем из n вещественных элементов,   мужики!выручите пожалуйста! задан одномерный массив B состоящем из n вещественных элементов,  
ALEXey__
7 / 7 / 8
Регистрация: 10.02.2014
Сообщений: 70
01.03.2014, 02:47 #26
Genn55, я скинул то, что компилируется и правильно работает у меня.
Изначально программа выглядела вот так:
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
Genn55
378 / 225 / 108
Регистрация: 26.12.2012
Сообщений: 744
01.03.2014, 03:14 #27
Цитата Сообщение от ALEXey__ Посмотреть сообщение

Так нормально?)
Зачем было спрашивать?А в прочем,поступайте как знаете.
0
ValeryS
Модератор
7124 / 5392 / 669
Регистрация: 14.02.2011
Сообщений: 18,205
01.03.2014, 07:07 #28
Цитата Сообщение от ALEXey__ Посмотреть сообщение
Так нормально?)
ага
особенно вот это
Цитата Сообщение от ALEXey__ Посмотреть сообщение
float arr[999999],
4 мегабайта на стеке выделить
че уж сразу не гигабайт?
сам то запускал?

вместо простейшей проверки типа такой
C++
1
2
3
4
do{
 cout<<"введите размер массива, не больше 50: ";
 cin>>n;
 }while (n>50);
начинаешь ерунду писать
и чем тебе динамическое выделение как у GuGo1991, не угодило ???

Добавлено через 6 минут
Цитата Сообщение от ALEXey__ Посмотреть сообщение
Genn55, Магия?)
хоть примерено представляешь как работает компьютер?
и как компилятор?
формат исполняемого файла?
что такое стек и что такое куча?
0
ALEXey__
7 / 7 / 8
Регистрация: 10.02.2014
Сообщений: 70
01.03.2014, 15:17 #29
ValeryS,
Цитата Сообщение от ValeryS Посмотреть сообщение
вместо простейшей проверки типа такой
Ты же все хотел ввести 60? А вдруг тебе захочется 100, 500, 1000, 10К чисел ввести? Поэтому так.
А по-поводу "магии" повторюсь:
Цитата Сообщение от ALEXey__ Посмотреть сообщение
я скинул то, что компилируется и правильно работает у меня.
0
Genn55
378 / 225 / 108
Регистрация: 26.12.2012
Сообщений: 744
01.03.2014, 18:20 #30
Цитата Сообщение от ALEXey__ Посмотреть сообщение
Да, она не идеальна
да еще и с ошибками.
Учите матчасть
Размер массива часто используется в различных моментах кода программы (например, в циклах прохода по массиву), поэтому удобнее его объявлять не конкретным числом в самом объявлении массива, а отдельно, как константу. Почему как константу? Потому что размер массива не может изменяться во время работы программы, на то он и статический, а не динамический Для того, чтобы компилятор знал о том, что это константа и не выдавал ошибку во время компиляции программы, нужно обязательно объявлять константное значение, в частности размер массива, со спецификатором const.
C++
1
2
const int arraySize = 10;
float array[arraySize] = {0};
Эта строка уже ошибка
C++
1
cout<<"Размер массива: "; cin>>n;
и если бы так было у вас написано
C++
1
2
const int n = 50;
float array[n] = {0};
и вопросов бы не возникло.Исправили бы эту строку
C++
1
cout<<mas[i]<<"  ";
на
C++
1
cout<<i + 1 <<"  ";
К стати она увас не верна
C++
1
cout<<i<<"  ";
показывает индекс,а не номер и все. Компиляция чистая,работает верно.
0
GuGo1991
269 / 263 / 146
Регистрация: 02.08.2012
Сообщений: 609
01.03.2014, 18:21 #31
ValeryS, Genn55, впрочем подумал, раз уж вы советуете не использовать корень,
раньше использовал другую операцию для нахождения действительных чисел. Что-то типа:
C++
1
B[i] = (double)(100 - rand() % 200) / (rand() % 10 + 1); //в зависимости от интервала значений
0
ALEXey__
7 / 7 / 8
Регистрация: 10.02.2014
Сообщений: 70
01.03.2014, 18:55 #32
GuGo1991,
Цитата Сообщение от Genn55 Посмотреть сообщение
const int n = 50;
float array[n] = {0};
Если так, то программа будет требовать ввода 50-ти элементов, я прав?
А как сделать, чтобы программа требовала то кол-во цифр, которое нужно сейчас(не используя при этом динамический массив)? Ну например: сейчас я хочу ввести 6 цифр, а через 5 минут захочу ввести 15 цифр.
Цитата Сообщение от Genn55 Посмотреть сообщение
cout<<i + 1 <<" *";
Используется для удобства ввода данных с клавиатуры. Т.е. не:
[0]:
[1]:
и т.д.
а
[1]:
[2]:
[3]:
и т.д.
0
Genn55
378 / 225 / 108
Регистрация: 26.12.2012
Сообщений: 744
01.03.2014, 19:24 #33
Цитата Сообщение от ALEXey__ Посмотреть сообщение
А как сделать, чтобы программа требовала то кол-во цифр, которое нужно сейчас(не используя при этом динамический массив)? Ну например: сейчас я хочу ввести 6 цифр, а через 5 минут захочу ввести 15 цифр.
Для своих экспериментов можно вводить не большие размеры как вы и делали,но в программе это ошибка.Вы же сами выбрали статический массив.Ну и работайте со статическим.А если вам необходимо менять размер в программе выбирайте динамический массив.
C++
1
2
3
4
5
int n, z = 0;
    float s=0.0;
    cout<<"Введите размер массива: ";
    cin >>n;
    float* arr = new  float[n];
0
ALEXey__
7 / 7 / 8
Регистрация: 10.02.2014
Сообщений: 70
01.03.2014, 19:30 #34
Genn55, все понятно, спасибо.
0
ValeryS
Модератор
7124 / 5392 / 669
Регистрация: 14.02.2011
Сообщений: 18,205
01.03.2014, 23:37 #35
Цитата Сообщение от ALEXey__ Посмотреть сообщение
Ты же все хотел ввести 60? А вдруг тебе захочется 100, 500, 1000, 10К чисел ввести?
ну и
вот этот цикл не позволяет ввести больше 50
C++
1
2
3
4
do{
 cout<<"введите размер массива, не больше 50: ";
 cin>>n;
 }while (n>50);
можешь вводить хоть 10 миллионов, цикл не даст ввести больше 50
в результате не будет выхода за пределы массива, не будет падения программы если введут большое число
"атака через переполнения стека" слышал про такое
это когда вводят значения много больше чем позволяет прога
и когда она рухает, изучают дамп почему она рухнула и где
потом вводят специальные данные и программа делает то что нужно злоумышленнику
и такой простой цикл защищает программу от такого рода атак
0
01.03.2014, 23:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.03.2014, 23:37
Привет! Вот еще темы с решениями:

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

Дан одномерный массив, состоящий из N вещественных элементов
Дан одномерный массив, состоящий из N вещественных элементов. Ввести массив с...

Дан одномерный массив, состоящий из N вещественных элементов
1. Заполнить массив случайными числами. 2. Найти минимальный элемент. выдает...

Дан одномерный массив, состоящий из N вещественных элементов.
Помогите пожалуйста написать программу на С++. Дан одномерный массив,...


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

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

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