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

Ошибка в программе - C++

Восстановить пароль Регистрация
 
Mirazhana
1 / 1 / 0
Регистрация: 04.09.2012
Сообщений: 94
17.09.2013, 21:47     Ошибка в программе #1
Доброго времени суток. Столкнулась с проблемой, в программе где-то засела ошибка, сама найти не могу. Задание: "Программа выводит массив из случайных чисел, размер задается пользователем, и находится произведение всех положительных элементов массива"

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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include "iostream"
#include "time.h"
#include "stdlib.h"
 
using namespace std;
 
float mult_otr = 0;
 
//Функция заполнения массива
void fill(int n, float mas[])
{
    for (int i = 0; i < n; i++)
    {
        mas[i] = -50 + (float)(rand() %100);
    }
    return;
}
 
//Вывод массива
void out_mas(int n, float mas[])
{
    for (int i = 0; i < n; i++)
    {
        cout << mas[i] << " ";
    }
    return;
}
 
//Подсчет произведения положительных элементов
float mult(int n, float mas[])
{
    for (int i = 0; i < n; i++)
    {
        if (mas[i] > 0)
        {
            mult_otr *= mas[i];
        }
    }
    return 0;
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int i = 0;
    int n = 0;
    
    cout << "Введите кол-во элементов массива: ";
    cin >> n;
    float *mas = new float[n];
    cout << endl << endl;
    srand(time(NULL));
    
    fill(n, mas);
    out_mas(n, mas);
    mult(n, mas);
 
    cout << endl << endl;
    cout << "Произведение положительных элементов равна: " << mult_otr << endl;
    
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.09.2013, 21:47     Ошибка в программе
Посмотрите здесь:

ошибка в программе C++
C++ 1 ошибка в программе
Ошибка в программе C++
C++ Ошибка в программе
ошибка в программе C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
17.09.2013, 21:48     Ошибка в программе #2
float mult_otr = 0;
наверно всё-таки
float mult_otr = 1;
User409368
191 / 168 / 6
Регистрация: 09.09.2013
Сообщений: 524
17.09.2013, 21:49     Ошибка в программе #3
Цитата Сообщение от Mirazhana Посмотреть сообщение
в программе где-то засела ошибка, сама найти не могу.
в программе нет delete [] mass;
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,165
Завершенные тесты: 1
17.09.2013, 21:51     Ошибка в программе #4
Надо
C++
1
float mult_otr = 1.0;
Но приличнее так:
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
//Подсчет произведения положительных элементов
float mult(int n, float mas[])
{
    float mu=1.;
    for (int i = 0; i < n; i++)
    {
        if (mas[i] > 0)
        {
            mu *= mas[i];
        }
    }
    return mu;
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int i = 0;
    int n = 0;
    
    cout << "Введите кол-во элементов массива: ";
    cin >> n;
    float *mas = new float[n];
    cout << endl << endl;
    srand(time(NULL));
    
    fill(n, mas);
    out_mas(n, mas);
    float res=mult(n, mas);
    delete[] mas;
    cout << endl << endl;
    cout << "Произведение положительных элементов равна: " << res << endl;
    
    system("pause");
    return 0;
}
Mirazhana
1 / 1 / 0
Регистрация: 04.09.2012
Сообщений: 94
17.09.2013, 21:53  [ТС]     Ошибка в программе #5
Цитата Сообщение от SummerRain Посмотреть сообщение
float mult_otr = 0;
наверно всё-таки
float mult_otr = 1;
Спасибо)) проглядела такую глупую ошибку
Yandex
Объявления
17.09.2013, 21:53     Ошибка в программе
Ответ Создать тему
Опции темы

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