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

Сумма элементов массива, расположенных после первого положительного элемента - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Алгоритм Эвклида, как возвратиться к шагу 2 http://www.cyberforum.ru/cpp-beginners/thread1102725.html
int lab2() { int a=0,b=0,n=0,q=0; do{cout << "Введите первое неотрицательное число: "; cin >> a;}while(a<0); do{cout << "Введите второе неотрицательное число: "; cin >> b;}while(b<0); do{cout << "Введите моудуль: "; cin >> n;}while(n==0); int u1=0,u2=1,u3=n; //Вектор (u1,u2,u3) int v1=1,v2=0,v3=a; ...
C++ Определение всех простых путей в ориентированном графе Здравствуйте, уважаемые форумчане! Работаю над одним заданием, но пока не очень получается. Оно сформулировано следующим образом: определить все простые пути в ориентированном графе, представленном матрицей инцидентности. С алгоритмом что-то не так. Заранее спасибо за помощь! Вот мой код: http://www.cyberforum.ru/cpp-beginners/thread1102696.html
C++ Копирование в два и более файла
Нужно сделать так чтобы когда он сохранял нам в указанный файл, и сохранял в другой файл который пользователю неизвестен, написал вроде бы но что то не работает. Помогите разобраться что тут и как: #include<iostream> #include<math.h> #include<string> #include<ctime> #include<fstream> #include<vector> #include<list> #pragma warning(disable : 4996) using namespace std;
Создать класс "студент" C++
Помогите написать программу, пожалуйста. Вот задание: Класс - студент. Параметры (поля): ФИО, массив экзаменационных оценок (m=4). Статус доступа всех полей private. Класс включает: конструктор и функцию определения среднего балла, при необходимости функции доступа к полям, функцию печати параметров. Напечатать параметры всех студентов и 3-х самых сильных студентов группы. С клавиатуры...
C++ Могут ли две string разделять одни данные? http://www.cyberforum.ru/cpp-beginners/thread1102686.html
Обнаружил, что substr() создает новую подстроку из заданной строки, а значит в данном коде: string str("something"); string a = str.substr(0), b = str.substr(4); у меня будет три разных строки и изменения в первой не дадут никаких изменений для других. Можно расшарить в отдельных объект string уже использующуюся строку или её подстроку (чтобы в примере выше была только одна строка "something"...
C++ Необработанное исключение Здравствуйте. Нужно добавить в готовый класс свои функции из предыдущих работ. Все добавил, но при вызове функции "cdd" вылезает ошибка "Необработанное исключение в "0x00f12afb" в "eta.exe": 0xC0000005: Нарушение прав доступа при чтении "0xfdfdfdfd".". Попробовал запустить старое задание, из которого я взял код и добавил сюда - тоже не работает. Хотя на университетских компьютерах все работало.... подробнее

Показать сообщение отдельно
ArtAlex777
0 / 0 / 0
Регистрация: 18.09.2013
Сообщений: 50
22.02.2014, 17:28  [ТС]     Сумма элементов массива, расположенных после первого положительного элемента
Сумма элементов массива, расположенных после первого положительного элемента
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
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <cmath>
 
 
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL,"Russian");
const int n=8;
    double mas[n],max,Sum=0;
    int i,maxI=0;
 
    /* Читаем массив.*/
    for (i=0;i<n;i++) scanf("%lf",&mas[i]);
    /* Ищем индекс максимального по модулю. */
    max=fabs(mas[0]);
    for (i=0;i<n;i++)
        if (max<fabs(mas[i])) {
            max=fabs(mas[i]);
            maxI=i;
        }
    printf("Номер максимального по модулю элемента: %d\n",maxI+1);
 
    /* Находим сумму модулей элементов после первого положительного. */
    maxI=n-1;
    for (i=0;i<n;i++) if (mas[i]>0){
        maxI=i;
        break;
    }
    for (i=(maxI+1);i<n;i++) Sum+=(mas[i]);
    printf("Сумма после первого положительного числа: %lf\n",Sum);
 
       const double left = 10, right = 20; 
 
       for (int i = 0, j = 0; i < n; i++) 
       { 
           if (mas[i] <= right && mas[i] >= left) 
    { 
                double temp = mas[i]; 
                mas[i] = mas[j]; 
                mas[j] = temp; 
                j++; 
           } 
       } 
for(int i=0;i<n;i++)
printf("%f",mas[i]);
    return 0;
}
Проверьте программу, вроде работает, но последнюю 3 часть " Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых лежит в интервале [a,b], а потом – все остальные." не выводит как надо!
 
Текущее время: 10:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru