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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Liquil
233 / 218 / 37
Регистрация: 04.12.2013
Сообщений: 964
#1

Удвоенная сумма положительных элементов массива - C++

07.12.2013, 12:49. Просмотров 404. Ответов 3
Метки нет (Все метки)

Добрый день,есть такое задание:
Даны натуральное число n и действительные числа a1...an. Получить удвоенную сумму всех положительных членов последовательности. Написал я программу, но выводит почему-то всегда 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
#include <cstdlib>
#include <iostream>
#include <stdlib.h>
 
 
using namespace std;
 
float amount(float*, int);
main()
  {int N,i; float *mas, S;
    printf("opr dl mas:");
    scanf("%d",&N);
    mas=(float*) malloc (sizeof (int)*N);
    printf("Input %d elements\n",N);
    for (i=0; i<N; i++) scanf("%d",&mas[i]);
    S=amount(mas,N);
    printf("amount=%.2f \n", S);
    system("PAUSE");
    return EXIT_SUCCESS;
   }
   
 float amount(float*mas, int N)
{   int a; 
    float b;
    b=0.;
    for (a=0; a<N; a++)
     if (mas[a]>0.) b=b+2*mas[a];
     return b;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2013, 12:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удвоенная сумма положительных элементов массива (C++):

Составить программу, в которой вычислить z=(s1+s2)/(k1*k2), где s1 и k1 - сумма и количество положительных элементов массива Х[N]; s1 u k2 - сумма - C++
Составить программу, в которой вычислить z=(s1+s2)/(k1*k2), где s1 и k1 - сумма и количество положительных элементов массива Х; s1 u k2 ...

Сумма положительных элементов, произведение элементов массива - C++
В одномерном массиве,состоящем из n вещественных элементов,вычислить: 1)Сумму положительных элементов массива 2)произведение элементов...

Сумма положительных и отрицательных по модулю элементов массива - C++
Ребят! а можете помочь вот с такой задачкой. вот условие: Дан массив С. получить и напечатать значение переменной Fl по...

Сумма трёх первых положительных элементов заданного массива - C++
Помогите с решением контрольных на C++. Пожалуйста. 1. Дан массив D(n), где n≤10, вещественного типа. Разработайте программу,...

Сортировка по возрастанию, сумма положительных и произведение отрицательных элементов массива - C++
#include &lt;stdio.h&gt; #include &lt;iostream.h&gt; main() { static float a; int i,j,sum=0,pr=1,t; cout&lt;&lt;&quot;Vvedite 6...

Составить программу для вычисления по формуле X - сумма всех элементов массива; Y - произведение положительных - C++
Составить программу для вычисления по формуле X - сумма всех элементов массива; Y - произведение положительных элементов массива; Z...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
RQdan
65 / 65 / 17
Регистрация: 26.10.2013
Сообщений: 198
07.12.2013, 14:26 #2
Цитата Сообщение от Liquil Посмотреть сообщение
mas=(float*) malloc (sizeof (int)*N);
наверно ошибка здесь.
Надо выделять память под float тип, а не int.
Проверьте, какие элементы находятся в массиве после ввода.

Добавлено через 4 минуты
Цитата Сообщение от Liquil Посмотреть сообщение
for (i=0; i<N; i++) scanf("%d",&mas[i]);
%d - это ввод целых чисел, а не действительных. Для последних, кажется, %а
0
Ev[G]eN
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
07.12.2013, 14:36 #3
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
#include <iostream>
#include <random>
#include <vector>
 
int main()
{
    std::default_random_engine generator;
    std::uniform_int_distribution <> distribution(-10, 10);
 
    size_t vectorSize;
    std::cout << "N: ";
    std::cin >> vectorSize;
 
    size_t resultSum(0);
    std::vector <int> vector(vectorSize);
    std::cout << "Vector: " << std::endl;
    for (auto &iterator: vector) {
        std::cout << (iterator = distribution(generator)) << " ";
        resultSum += (iterator > 0) ? iterator : 0;
    }
    std::cout << std::endl << "Result: " << (resultSum * 2) << std::endl;
 
    std::system("pause");
    return 0;
}
0
Liquil
233 / 218 / 37
Регистрация: 04.12.2013
Сообщений: 964
07.12.2013, 15:14  [ТС] #4
Цитата Сообщение от RQdan Посмотреть сообщение
наверно ошибка здесь.
Надо выделять память под float тип, а не int.
Проверьте, какие элементы находятся в массиве после ввода.

Добавлено через 4 минуты

%d - это ввод целых чисел, а не действительных. Для последних, кажется, %а
спасибо, достаточно было исправить тип данных при считывании массива
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.12.2013, 15:14
Привет! Вот еще темы с ответами:

Сумма положительных элементов - C++
Вычислить сумму положительных элементов матрицы, находящихся под главной диагональю и на ней. Профессионалы, буду Вам благодарен!

сумма положительных элементов - C++
В массиве А(20) целых чисел подсчитать сумму положительных элементов.

Записать положительные элементы массива X подряд в массив Y. Определить k – количество положительных элементов. Вычислит сумму элементов массива Y - C++
Записать положительные элементы массива X=(x1,x2,…, xn) подряд в массив Y=(y1,y2,…, yk). Определить k – количество положительных...

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
07.12.2013, 15:14
Ответ Создать тему
Опции темы

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