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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
вольдемур
Сообщений: n/a
27.02.2014, 01:48     мужики!выручите пожалуйста! задан одномерный массив B состоящем из n вещественных элементов, #1
задан одномерный массив B состоящем из n вещественных элементов,определить позиции,в которых находятся отрицательные элементы,сосчитать их количество отрицательных элементов и вычислить их сумму, надо написать в визуал си++
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2014, 01:48     мужики!выручите пожалуйста! задан одномерный массив B состоящем из n вещественных элементов,
Посмотрите здесь:

C++ Задан одномерный массив, содержащий n элементов, определить сумму всех чётных элементов
одномерный массив, состоящий из 20 вещественных элементов C++
C++ Преобразовать одномерный массив, состоящий из 10 вещественных элементов
Дан одномерный массив, состоящий из N вещественных элементов C++
C++ Задан одномерный массив В,состоящем из n вещественных элементов С++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Genn55
341 / 188 / 37
Регистрация: 26.12.2012
Сообщений: 658
01.03.2014, 01:38     мужики!выручите пожалуйста! задан одномерный массив B состоящем из n вещественных элементов, #21
да и
C++
1
arr[999999]
великовато, будет вылетать программа ,хватило бы и 100 для вашего случая.

Добавлено через 11 минут
Запустил вашу программу,как я и предполагал у меня вылетела.Уменьшил размер до 1000 все нормально.А else здесь не нужно,условие будет выполняться.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ALEXey__
7 / 7 / 2
Регистрация: 10.02.2014
Сообщений: 70
01.03.2014, 01:43     мужики!выручите пожалуйста! задан одномерный массив B состоящем из n вещественных элементов, #22
Genn55, Магия?)
http://hostingkartinok.com/show-imag...bbad0ff79aa9be
Да, согласен, else не нужно.
ALEXey__
7 / 7 / 2
Регистрация: 10.02.2014
Сообщений: 70
01.03.2014, 02:02     мужики!выручите пожалуйста! задан одномерный массив B состоящем из n вещественных элементов, #23
мужики!выручите пожалуйста! задан одномерный массив B состоящем из n вещественных элементов,
Genn55
341 / 188 / 37
Регистрация: 26.12.2012
Сообщений: 658
01.03.2014, 02:26     мужики!выручите пожалуйста! задан одномерный массив B состоящем из n вещественных элементов, #24
А ни какой магии нет.Программы пишутся не под конкретный IDE,а под стандарт.Так что у вас будет работать,а у меня и у других нет.Ну и посудите сами.Вы просите кампиллятор выделить сразу 999999 подряд идущих блоков ячеек памяти,а использовать будете в лучшем случае 20.Ну и где здравый смысл?Если уж собираетесь задавать свой размер,то используйте динамический массив.И второе какая гарантия,что вы сумеете ввести все 999999 чисел и программа сработает верно?Скорее всего уже после половины этого размера начнутся ошибки.Попробуйте ради интереса хотя бы,указав 100 прогнать несколько раз.
Genn55
341 / 188 / 37
Регистрация: 26.12.2012
Сообщений: 658
01.03.2014, 02:29     мужики!выручите пожалуйста! задан одномерный массив B состоящем из n вещественных элементов, #25
Скрин
Миниатюры
мужики!выручите пожалуйста! задан одномерный массив B состоящем из n вещественных элементов,   мужики!выручите пожалуйста! задан одномерный массив B состоящем из n вещественных элементов,  
ALEXey__
7 / 7 / 2
Регистрация: 10.02.2014
Сообщений: 70
01.03.2014, 02:47     мужики!выручите пожалуйста! задан одномерный массив B состоящем из n вещественных элементов, #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;
}
Да, она не идеальна, и даже не близка к идеалу, но она работает. И если автору темы нужно, чтобы она работала по-другому, он ее изменит по своему желанию.
Genn55
341 / 188 / 37
Регистрация: 26.12.2012
Сообщений: 658
01.03.2014, 03:14     мужики!выручите пожалуйста! задан одномерный массив B состоящем из n вещественных элементов, #27
Цитата Сообщение от ALEXey__ Посмотреть сообщение

Так нормально?)
Зачем было спрашивать?А в прочем,поступайте как знаете.
ValeryS
Модератор
6373 / 4839 / 440
Регистрация: 14.02.2011
Сообщений: 16,038
01.03.2014, 07:07     мужики!выручите пожалуйста! задан одномерный массив B состоящем из n вещественных элементов, #28
Цитата Сообщение от ALEXey__ Посмотреть сообщение
Так нормально?)
ага
особенно вот это
Цитата Сообщение от ALEXey__ Посмотреть сообщение
float arr[999999],
4 мегабайта на стеке выделить
че уж сразу не гигабайт?
сам то запускал?

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

Добавлено через 6 минут
Цитата Сообщение от ALEXey__ Посмотреть сообщение
Genn55, Магия?)
хоть примерено представляешь как работает компьютер?
и как компилятор?
формат исполняемого файла?
что такое стек и что такое куча?
ALEXey__
7 / 7 / 2
Регистрация: 10.02.2014
Сообщений: 70
01.03.2014, 15:17     мужики!выручите пожалуйста! задан одномерный массив B состоящем из n вещественных элементов, #29
ValeryS,
Цитата Сообщение от ValeryS Посмотреть сообщение
вместо простейшей проверки типа такой
Ты же все хотел ввести 60? А вдруг тебе захочется 100, 500, 1000, 10К чисел ввести? Поэтому так.
А по-поводу "магии" повторюсь:
Цитата Сообщение от ALEXey__ Посмотреть сообщение
я скинул то, что компилируется и правильно работает у меня.
Genn55
341 / 188 / 37
Регистрация: 26.12.2012
Сообщений: 658
01.03.2014, 18:20     мужики!выручите пожалуйста! задан одномерный массив B состоящем из n вещественных элементов, #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<<"  ";
показывает индекс,а не номер и все. Компиляция чистая,работает верно.
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
01.03.2014, 18:21     мужики!выручите пожалуйста! задан одномерный массив B состоящем из n вещественных элементов, #31
ValeryS, Genn55, впрочем подумал, раз уж вы советуете не использовать корень,
раньше использовал другую операцию для нахождения действительных чисел. Что-то типа:
C++
1
B[i] = (double)(100 - rand() % 200) / (rand() % 10 + 1); //в зависимости от интервала значений
ALEXey__
7 / 7 / 2
Регистрация: 10.02.2014
Сообщений: 70
01.03.2014, 18:55     мужики!выручите пожалуйста! задан одномерный массив B состоящем из n вещественных элементов, #32
GuGo1991,
Цитата Сообщение от Genn55 Посмотреть сообщение
const int n = 50;
float array[n] = {0};
Если так, то программа будет требовать ввода 50-ти элементов, я прав?
А как сделать, чтобы программа требовала то кол-во цифр, которое нужно сейчас(не используя при этом динамический массив)? Ну например: сейчас я хочу ввести 6 цифр, а через 5 минут захочу ввести 15 цифр.
Цитата Сообщение от Genn55 Посмотреть сообщение
cout<<i + 1 <<" *";
Используется для удобства ввода данных с клавиатуры. Т.е. не:
[0]:
[1]:
и т.д.
а
[1]:
[2]:
[3]:
и т.д.
Genn55
341 / 188 / 37
Регистрация: 26.12.2012
Сообщений: 658
01.03.2014, 19:24     мужики!выручите пожалуйста! задан одномерный массив B состоящем из n вещественных элементов, #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];
ALEXey__
7 / 7 / 2
Регистрация: 10.02.2014
Сообщений: 70
01.03.2014, 19:30     мужики!выручите пожалуйста! задан одномерный массив B состоящем из n вещественных элементов, #34
Genn55, все понятно, спасибо.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.03.2014, 23:37     мужики!выручите пожалуйста! задан одномерный массив B состоящем из n вещественных элементов,
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6373 / 4839 / 440
Регистрация: 14.02.2011
Сообщений: 16,038
01.03.2014, 23:37     мужики!выручите пожалуйста! задан одномерный массив B состоящем из n вещественных элементов, #35
Цитата Сообщение от ALEXey__ Посмотреть сообщение
Ты же все хотел ввести 60? А вдруг тебе захочется 100, 500, 1000, 10К чисел ввести?
ну и
вот этот цикл не позволяет ввести больше 50
C++
1
2
3
4
do{
 cout<<"введите размер массива, не больше 50: ";
 cin>>n;
 }while (n>50);
можешь вводить хоть 10 миллионов, цикл не даст ввести больше 50
в результате не будет выхода за пределы массива, не будет падения программы если введут большое число
"атака через переполнения стека" слышал про такое
это когда вводят значения много больше чем позволяет прога
и когда она рухает, изучают дамп почему она рухнула и где
потом вводят специальные данные и программа делает то что нужно злоумышленнику
и такой простой цикл защищает программу от такого рода атак
Yandex
Объявления
01.03.2014, 23:37     мужики!выручите пожалуйста! задан одномерный массив B состоящем из n вещественных элементов,
Ответ Создать тему
Опции темы

Текущее время: 01:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru