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

Одномерный массив/ Вычислить и вывести отрицательные числа элемента массива I, взятые в порядке их следования - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Строки. Считывание текста и его вывод, в котором каждые 2 соседних слова меняются местами http://www.cyberforum.ru/cpp-beginners/thread765100.html
Здравствуйте! Подскажите пожалуйста решение данной задачи! В строках вообще ничего не понимаю. Надеюсь на вашу помощь :3 Написать программу, которая считывает текст и выводит его на экран, меняя...
C++ Модификация разработанного класса Создал класс видеомагнитофон, требуется доработать его вот по этому заданию: Рассмотреть модификацию видеомагнитофона,который запоминает(регистрирует) у себя в памяти все выполненные пользователем... http://www.cyberforum.ru/cpp-beginners/thread765099.html
C++ Работа с Файлами (запись/вывод)
Распечатать список учеников музыкальной школы, которые учатся играть на скрипке. Указать также, сколько лет они занимаются музыкой и принимали ли участие в каких-либо конкурсах. Знаю как решить на...
C++ Цикл с параметром
что не так ? не работает... помогите исправить... #include <vcl.h> #include <iostream.h> #include <conio.h> #include <math.h> int main() { double t=0.8;
C++ Определить значение угла в радианах http://www.cyberforum.ru/cpp-beginners/thread765084.html
Скоро экзамен , кто чем может ) Помоги ближнему , ибо смех продлевает жизнь...) 1. Дано значение угла а в градусах (0 < а < 360). Определить значение этого же угла в радианах, учитывая, что...
C++ Почему допустимо создавать объект по другому объекту, но нельзя присваивать уже созданный объект, другому созданному объекту? Это можно : Array a(10); a.set(0,5); Array b(a); А это нельзя : Array a(10); Array b(20); a = b; подробнее

Показать сообщение отдельно
TrueBit
96 / 96 / 12
Регистрация: 19.11.2012
Сообщений: 195
18.01.2013, 01:15
Цитата Сообщение от Tolibas Посмотреть сообщение
Помогите ,пожалуйста, решить задачу!!

Ввести одномерный массив I={13, 4, -2, 6,7,-1,-5,2,-3,4}
Вычислить и вывести m[0]n[0]+m[1]n[1]+...+m[k]n[k], где m[0], m[1],…m[p] - отрицательные числа элемента массива I, взятые в порядке их следования;
n[0],n[1],…n[q] - положительные элементы массива I, взятые в обратном порядке их следования;k=min{p,q}.

в оконном режиме
n - положительные, m - отрицательные, при умножении + на -, всегда будет отрицательное число, при сложении всех чисел всегда будет отрицательное число. Вот код вобщем(он слегка длинноват, и не оптимизирован, но работает):
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
#include <iostream>
using namespace std;
 
int main() {
    int p=0,q=0,k=0,sum=0;
    int I[] = { 13, 4, -2, 6,7,-1,-5,2,-3,4 };
    int * n; // положительные
    int * m; // отрицательные
    for(int i=0; i<sizeof(I)/sizeof(int);i++) {
        cout << I[i] << " ";
        if(I[i]>=0)
            q++; // положительные
        else
            p++; // отрицательные
    }
 
    cout << endl;
 
    if(p<q) // наименьшее k
        k=p;
    else
        k=q;
 
    n=new int[k];
    m=new int[k];
 
    for(int i=0,j=0;i<sizeof(I)/sizeof(int);i++) // заполняем -
        if(I[i]<0 && j<k) {
            m[j]=I[i];
            cout << m[j] << " ";
            j++;
        }
    cout << endl;
    for(int i=sizeof(I)/sizeof(int)-1,j=0;i>=0;i--) // заполняем -
        if(I[i]>=0 && j<k) {
            n[j]=I[i];
            cout << n[j] << " ";
            j++;
        }
    cout << endl;
    for(int i=0; i<k; i++)
        sum+=m[i]*n[i];
    cout << "sum = " << sum;
 
    delete [] n;
    delete [] m;
    cin.get();
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru